前言

本教程适用于CentOS 6.x 32位系统,非32位系统必定会报错,非CentOS 6.x的系统可能会报错,请酌情使用!

安装MySQL 5.7

1.检测系统是否已经安装过mysql或其依赖,若已装过要先将其删除,否则第4步使用yum安装时会报错:

yum list installed | grep mysql

查看系统内已经存在的mysql

yum -y remove mysql-libs.i686

成功卸载后会出现如下图
卸载成功后的界面

由于CentOS官方已经不再支持CentOS 6,因此无法使用yum,CentOS官方也给这些还不想把CentOS 6扔进垃圾堆的用户保留了最后一个版本的镜像,只是这个镜像不会再有更新了,因此需要更换CentOS的yum源

一键修复(直接copy到ssh运行即可)

sed -i “s|enabled=1|enabled=0|g” /etc/yum/pluginconf.d/fastestmirror.conf
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
yum clean all
yum makecache

2.从mysql的官网下载mysql57-community-release-el6-5.noarch.rpm(注意这里的el6-5即适配RHEL6.5的版本,如果下载了其它版本后面的安装过程中可能会报错):

wget dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

3.安装第一步下载的rpm文件:

yum install mysql-community-release-el6-5.noarch.rpm

安装成功后,我们可以看到/etc/yum.repos.d/目录下增加了mysql-community-source.repo和mysql-community.repo以下两个文件

ls /etc/yum.repos.d

增加的文件

3.查看mysql57的安装源是否可用

yum repolist enabled | grep mysql

mysql56

如图所示,首次查看源的时候默认是mysql56的版本,但是我们需要使用mysql57,因此需要自行修改一下配置文件

vim /etc/yum.repos.d/mysql-community.repo

使mysql57下面的enable=1,其他设为enable=0

修改mysql的yum配置文件

4.使用yum安装mysql:

yum install mysql-community-server --nogpgcheck

若不在后面填写--nogpgcheck的话,可能会出现报错

5.启动mysql服务:

service mysqld start

6.查看root密码:

grep "password" /var/log/mysqld.log

查看root默认密码

现在必须立刻修改密码,不然会报错:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

7.修改密码(如果在此步报错ERROR 1819,请向下翻查看原因及解决方法):

首先需要进入mysql

mysql -u root -p

输入上方的代码后会提示输入密码,这个时候就需要输入第六步查看到的默认生成root密码
输入完成后,会进入到mysql的界面
msyql

随后就需要修改密码了

下方的代码中不要全部复制!!不要全部复制!!!,只需要复制“ mysql> ”之后的内容即可!

下方代码中,“newpass” 是新密码!

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');


1819错误

8.查看mysqld是否开机自启动,并设置为开机自启动:

首先需要退出mysql的界面,进入系统的ssh界面,输入代码:

mysql> quit

bye~

出现如下图的提示后开始检查并设置mysql开机自启

chkconfig --list | grep mysqld
chkconfig mysqld on

9.修改字符集为UTF-8:

vim /etc/my.cnf

在[mysqld]部分添加:

character-set-server=utf8

在文件末尾新增[client]段,并在[client]段添加:

default-character-set=utf8

如下图所示:
配置文件修改

修改好之后重启mysqld服务:

service mysqld restart

进入mysql,查看修改结果:

mysql -u root -p

随后输入密码进入mysql

mysql> show variables like "%character%";

如下图所示:
utf-8设置

至此,MySQL安装结束!可以进入navicat尝试连接一下看看能否使用,其中主机地址为虚拟机的ip

可能遇到的问题

一.在修改密码步骤,若设置的密码为简单密码,可能会出现如下错误:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

这一错误其实与validate_password_policy值的设置有关:

validate_password_policy值默认为1,即MEDIUM,所以刚开始设置的密码必须符合长度要求,且必须含有数字,小写或大写字母,特殊字符

如果我们只是做为测试用而不需要如此复杂的密码,可使用如下方式修改validate_password_policy值

mysql> set global validate_password_policy=0;

提示如下内容则设置成功

Query OK, 0 rows affected (0.00 sec)

这样,对密码要求就只有长度了,而密码的最小长度由validate_password_length值决定

validate_password_length参数默认为8,它有最小值的限制,最小值为:

validate_password_number_count+ validate_password_special_char_count+(2 * validate_password_mixed_case_count)

其中,validate_password_number_count指定了密码中数字的长度,validate_password_special_char_count指定了密码中特殊字符的长度,validate_password_mixed_case_count指定了密码中大小字母的长度。这些参数的默认值均为1,所以validate_password_length最小值为4,如果显性指定validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4

设置validate_password_length的值:

mysql> set global validate_password_length=4;

提示如下内容则设置成功

Query OK, 0 rows affected (0.00 sec)

如果修改了validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一个值,则validate_password_length将进行动态修改。

二.Navicat连接数据库出现2003、1130报错

1.在windows下,cmd 进入telnet查看端口情况

使用telnet前需开启Windows功能中的telnet功能,并以管理员身份运行CMD

telnet

telnet  192.168.1.100 3306

telnet失败

其中ip是虚拟机的ip.如果连接失败
2.在虚拟机下输入

netstat -anp| grep 3306

3306错误
如上图结果中显示mysql 3306前面的ip不是0.0.0.0

3.修改/etc/my.cnf
在[mysqld]内加入下列代码

bind-address = 0.0.0.0

bind-address
上面的意思是改为监听所有地址

开启MySQL远程访问权限 允许远程连接

从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:

mysql -u root -proot 
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

操作完后切记执行以下命令刷新权限

FLUSH PRIVILEGES;

报错 ERROR 1062 (23000): Duplicate entry ‘%-root’ for key ‘PRIMARY’ 不予理会

至此再进入navicat,发现已经能成功连接虚拟机的mysql了!

成功连接

Last modification:April 26, 2022
如果觉得我的文章对你有用,请随意赞赏