相比于5.7之前的版本,MySQL8.0修改密码的方式有所不同,这篇博客简单地记录了个人修改密码的过程。
1、在忘记MySQL之前密码的情况下,如果没有设置免密登录,就无法进入MySQL中,进行相关的操作。
注意:如果授权了远程登录,不建议设置免密登录
发现使用正常的 mysql -uroot -p 无法正常登录MySQL
[root@VM-0-16-centos etc]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
2、找到my.cnf文件,添加代码 skip-grant-tables 即可跳过mysql密码验证进行登录。
vim etc/my.cnf
3、重启MySQL,让配置文件设置的免密登录生效。
systemctl restart mysqld
4、重新登录MySQL,密码为空。
5、先将原本的密码置为空,然后再进行修改。
update user set authentication_string="" where user = ‘root’;
6、设置新的密码(密码不能过于简单,太简单会报出提示。比如123456)
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘密码’;
7、刷新mysql相关系统权限表,并退出。
flush privileges;
8、将my.cnf文件中的 skip-grant-tables 注释掉。
9、重新启动MySQL,并使用刚刚设置的密码登录。
systemctl restart mysqld
至此,修改密码完成,接下来就可以根据个人需要,来授权远程连接。