最近碰见过几次mysql root密码修改无效的情况,在此做一下总结。
修改root@localhost密码后并且flush privileges;发现密码未变更,这种情况一般有三种可能。
-
使用 skip grant tables启动mysql导致,MySQL启动后不启动grant-tables,一般用于root密码忘记修改,修改完root密码后,去掉该参数重启即可应用修改后的密码。
- 存在root@‘%‘的用户,导致mysql -uroot -p登录使用的是root@‘%‘的密码,同时修改所有root用户密码,一般建议安装完成后初始化user表中非root及host不为localhost的用户,不建议新建root@‘%‘的远程用户,建议使用其他命名
- root用户只有一个,但是mysql.user表中plugin使用的并不是mysql_native_password 而是auth_socket,导致用户连接一直使用unix socket空密码进入。修改plugin改回mysql_native_password,然后重新修改root密码并刷新全权限即可。
原文地址:https://blog.51cto.com/liuminkun/2370274
时间: 2024-11-08 10:38:44