Linux下mysql升级到8.0版本了,以往mysql5.7设置密码的方法已经失效,如set password及password()函数等
总结归纳以下方法:
很多人卡在了步骤5和步骤7,此时注意将root原来的密码置空并且刷新权限再进行修改
1 安装好mysql8.0后,root账号进mysql发现进不去 mysql -uroot -p
2 进入配置文件 vim /etc/my.cnf 添加代码 skip-grant-tables 即可跳过mysql密码验证进行登录
3 重启mysql systemctl restart mysqld
4 重新登录,密码随便填即可进入
5 此时输入 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; 发现修改不了
6 需要先将root密码置空 update user set authentication_string='' where user = 'root';
7 再执行步骤5即可修改成功
如果步骤7出错,提示:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot e
mysql>
需要先执行flush privileges;如下:
再执行修改密码命令,可以了。
8 FLUSH privileges; 刷新mysql相关系统权限表,退出
9 进入配置文件 vim /etc/my.cnf 将这行注释 skip-grant-tables 前面加#即可注释
10 重新启动mysql,输入刚才设置的密码进入mysql:
密码设置成功!