使用新Dataproc镜像时,从主节点登录MySQL服务器失败如何解决?
解决Dataproc主节点MySQL root登录失败(ERROR 1045)的方法
错误场景
执行登录命令:
mysql -uroot -p<password>
收到报错:
mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
解决步骤
1. 确认MySQL服务状态
先检查MySQL是否正常运行:
sudo systemctl status mysql
如果服务未启动,执行启动命令:
sudo systemctl start mysql
2. 重置root密码(最常见修复方案)
若密码错误或遗忘,按以下流程重置:
- 停止MySQL服务:
sudo systemctl stop mysql - 启动MySQL并跳过权限验证:
sudo mysqld_safe --skip-grant-tables & - 无密码登录MySQL:
mysql -uroot - 切换到权限数据库并更新密码(根据MySQL版本选择对应命令):
USE mysql; -- MySQL 5.7及更早版本执行这条 UPDATE user SET authentication_string=PASSWORD('你的新密码') WHERE User='root' AND Host='localhost'; -- MySQL 8.0及以上版本执行这条 ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; - 刷新权限并退出:
FLUSH PRIVILEGES; exit; - 重启MySQL服务:
sudo systemctl start mysql - 用新密码登录(建议交互式输入密码避免安全警告):
随后输入新密码即可完成登录。mysql -uroot -p
3. 检查root用户的主机权限
若重置密码后仍无法登录,可能是root用户的主机限制导致:
- 登录MySQL后执行:
SELECT User, Host FROM mysql.user; - 如果root对应的Host不是
localhost,添加或修改localhost的权限:ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码'; FLUSH PRIVILEGES;
内容的提问来源于stack exchange,提问作者Dilip
相关产品推荐
相关产品推荐

