CentOS7.2安装mysql5.7遇到的坑以及解决办法

Linux,CentOS7.2安装mysql5.7遇到的坑以及解决办法


如有安装失败的,请自行卸载
卸载参考 : https://blog.****.net/zhwyj1019/article/details/80274269

//使用此命安装,没有安装yum请自行百度,
//这里给出 mysql官网的教程链接 https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
[[email protected] ~]# sudo yum install mysql-community-server

启动mysql

[[email protected] ~]# service mysqld restart
//或者
[[email protected] ~]# service mysqld start

进入mysql

[[email protected] ~]#  mysql -u root -p

提示如下:
Enter password:
这是你会很懵逼的问道“我哪知道密码是啥”,呵呵。现在去在 /var/log/mysqld.log中查看mysql安装时生成的临时密码,一般第一行就是哦。仔细读读。。。。

进入/var/log 使用如下命令 编辑 文本

[[email protected] ~]# vi mysqld.log

现在 你看到的这一行就是临时密码
CentOS7.2安装mysql5.7遇到的坑以及解决办法然后接着 你可以回退到(cd /)执行

[[email protected] ~]#  mysql -u roor -p

提示如下:
Enter password:
输入刚才看到的密码即可

如果还是提示错误,接下来请看:
用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf

CentOS7.2安装mysql5.7遇到的坑以及解决办法

skip-grant-tables  //然后保存并退出("esc"+":"+"wq")

加上 上图红色部分的代码(),注意要加在 [mysqld] 里面的最后一行,具体原因不清楚,我之前是加在 [mysqld] 的下一行,导致mysql服务不能启动,坑了我好久!!!!!

重启mysql

[[email protected] ~]#  service mysqld restart

重新进入mysql

[[email protected] ~]#  mysql -u root -p  
//回车

这时候直接跳过了mysql的权限认证,进入了mysql

update sys set password=password("你的新密码") where user='root'
//回车(如果出错就用下面这句,我的是下面这句是对的)
update mysql.user set authentication_string=password('你的新密码') where user='root' ;

然后出来记得,把刚才 添加的 skip-grant-tables 给去掉了呦!

然后重启 mysql服务

[[email protected] ~]#  service mysqld restart

如果能进mysql里面去,缺报错,例如这样:

ERROR 1820 (HY000): Unknown error 1820

执行如下命令:参考: https://blog.****.net/kuluzs/article/details/51924374

【原因】

原来MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。
使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。影响的语句和函数有:create user,grant,set password,password(),old password。

这里省略博主一些参数的介绍 https://blog.****.net/kuluzs/article/details/51924374

一些参数的介绍

修改mysql参数配置

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.05 sec)
 
mysql> 
mysql> 
mysql> set global validate_password_mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_number_count=3;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_special_char_count=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_length=3;
Query OK, 0 rows affected (0.00 sec)

然后执行修改密码语句

 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');

大功告成!!!!!!!!!