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
现在 你看到的这一行就是临时密码然后接着 你可以回退到(cd /)执行
[[email protected] ~]# mysql -u roor -p
提示如下:
Enter password:
输入刚才看到的密码即可
如果还是提示错误,接下来请看:
用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf
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('新密码');
大功告成!!!!!!!!!