方法一:通过宝塔面板重置如果是宝塔面板重置数据库密码。
方法二:通过命令行重置。
# 停止 MySQL 服务
systemctl stop mysql
# 启动 MySQL 安全模式
mysqld_safe --skip-grant-tables &
# 登录 MySQL
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
这是基本的流程,情况不一样经供参考。
以下是我排查的基本情况,仅做记录。
--确认当前是否存在 root@localhost 用户
SELECT User, Host FROM mysql.user WHERE User = 'root';
--如果用户不存在
FLUSH PRIVILEGES;
CREATE USER 'root'@'localhost' IDENTIFIED BY 'newpassworc';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
问题情况一:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
查看并终止已有 MySQL 进程.在重复上述操作。
ps aux | grep mysqld
# 或者如果你是手动启动的,可以用 pkill
pkill mysqld
pkill mysqld_safe