普通账号密码忘了,可以通过 root 账号重置,但是如果 root 账号都忘了,怎么办呢?在你能够完全掌控 MySQL 的机器,并且不完全重装的前提下,几步搞定,这边 tips 下。
- 先关闭 MySQL 服务。
- 找到实际使用的 my.cnf 文件, 在 [mysqld] 一节加上
skip-grant-tables
- 重启 MySQL
- MySQL 机器本地使用 sock 登录
./mysql -S xxxxx/mysql.sock
- 将root密码置空
use mysql update user set authentication_string ='' where user='root';
- 修改 my.cnf 去除
skip-grant-tables
并重启 MySQL - 使用空密码登陆
./mysql -S xxxx/mysql.sock -uroot
- 修改root密码为正常密码
alter user 'root'@'localhost' identified by 'xxxxx';
- done