MySQL密码忘记了怎么办?
终极重置方法(数据目录初始化)
如果仍失败,可以尝试重新初始化数据目录(会清空现有数据!):(bash)
sudo systemctl stop mysql
sudo rm -rf /var/lib/mysql/*
sudo mysqld --initialize --user=mysql
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl start mysql
初始化后会生成临时密码,查看方法:(bash)
sudo grep 'temporary password' /var/log/mysql/error.log
复制临时密码去登录(指定套接字连接)(bash)
常见位置:
-
/var/run/mysqld/mysqld.sock
(Ubuntu) -
/var/lib/mysql/mysql.sock
(CentOS)
mysql -u root -p -S /var/run/mysqld/mysqld.sock
-
重置密码(根据 MySQL 版本选择)(sql)
-- MySQL 5.7 及以下 UPDATE mysql.user SET authentication_string=PASSWORD('你的新密码') WHERE User='root'; FLUSH PRIVILEGES;-- MySQL 5.7及更高版本 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; FLUSH PRIVILEGES;-- MySQL 8.0+ ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; FLUSH PRIVILEGES;