centos7 中mysql8.*修改root密码

时间:2024-04-10 16:19:12

Linux下mysql升级到8.0版本了,以往mysql5.7设置密码的方法已经失效,如set password及password()函数等

总结归纳以下方法:

很多人卡在了步骤5和步骤7,此时注意将root原来的密码置空并且刷新权限再进行修改

 

1 安装好mysql8.0后,root账号进mysql发现进不去 mysql -uroot -p

centos7 中mysql8.*修改root密码

 

2 进入配置文件 vim /etc/my.cnf 添加代码 skip-grant-tables 即可跳过mysql密码验证进行登录

centos7 中mysql8.*修改root密码

 

3 重启mysql systemctl restart mysqld

 

4 重新登录,密码随便填即可进入

centos7 中mysql8.*修改root密码

 

5 此时输入 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; 发现修改不了 

centos7 中mysql8.*修改root密码

 

6 需要先将root密码置空 update user set authentication_string='' where  user = 'root';

centos7 中mysql8.*修改root密码

 

7 再执行步骤5即可修改成功

centos7 中mysql8.*修改root密码

如果步骤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;如下:

centos7 中mysql8.*修改root密码

再执行修改密码命令,可以了。

centos7 中mysql8.*修改root密码

 

 8 FLUSH privileges; 刷新mysql相关系统权限表,退出

centos7 中mysql8.*修改root密码

 

9 进入配置文件 vim /etc/my.cnf 将这行注释  skip-grant-tables 前面加#即可注释

centos7 中mysql8.*修改root密码

 

10 重新启动mysql,输入刚才设置的密码进入mysql:

centos7 中mysql8.*修改root密码

 

 密码设置成功!