出现“Access denied for user ‘root’@‘localhost’”的错误提示通常表示您提供的密码不正确,或者该用户没有足够的权限。以下是解决此问题的一些步骤:
1. 确认临时密码
如果您之前尝试使用临时密码但未能成功,请再次检查 MySQL 错误日志以确认临时密码是否正确。
sudo grep 'temporary password' /var/log/mysqld.log
2. 安全模式下重置 root 密码
如果你无法通过当前密码登录,可以使用安全模式(也称为恢复模式)来重置 root 密码:
步骤一:停止 MySQL 服务
在命令行中运行以下命令来停止 MySQL 服务:
sudo systemctl stop mysqld
步骤二:启动 MySQL 服务器,不加载权限表
启动 MySQL 而不进行权限验证,输入以下命令:
sudo mysqld_safe --skip-grant-tables &
这将使 MySQL 在不加载权限表的情况下运行,因此您可以无需密码访问数据库。
步骤三:连接到 MySQL
现在,您应该能够连接到 MySQL:
mysql -u root
步骤四:更新 root 用户密码
进入 MySQL 后,执行以下 SQL 命令以更改 root 用户的密码:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword!';
请将 'YourNewPassword!'
替换为您的新密码。
步骤五:退出并重新启动 MySQL 服务
退出 MySQL:
exit;
然后停止安全模式下运行的 MySQL 实例,并重新启动服务:
sudo killall mysqld # 停止安全模式下的 mysqld 实例
sudo systemctl start mysqld # 启动正常的 mysqld 服务
3. 测试新密码
最后,再次尝试使用新设置的用户和新密码登录:
mysql -u root -p
希望这些步骤能够帮助您解决问题!如果还有其他问题,请随时问我。
内容由零声教学AI助手提供,问题来源于学员提问