Amazon Linux 2 EC2实例安装MySQL 8.0后临时密码登录被拒如何解决
Amazon Linux 2 上 MySQL 8.0 root账号登录被拒解决方案
问题原因说明
- 执行
systemctl start mysqld未加sudo权限,触发PolicyKit报错,实际加sudo查询时服务已正常运行 - 重装MySQL时未删除残留的数据目录
/var/lib/mysql和旧日志文件,旧的临时密码已失效,新安装流程不会生成新的临时密码 - 直接运行
mysql_secure_installation时未完成有效密码配置,导致登录校验始终不通过
具体解决步骤
步骤1:调整MySQL启动模式跳过权限校验
# 停止运行中的MySQL服务 sudo systemctl stop mysqld # 设置启动参数,跳过权限表、禁用网络避免未授权访问 sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking" # 启动MySQL服务 sudo systemctl start mysqld
步骤2:无密码登录重置root密码
无需输入密码直接登录MySQL:
sudo mysql -u root
进入MySQL命令行后执行以下语句,替换自定义强密码为符合规则的密码(需包含大小写字母、数字、特殊符号,长度不低于8位):
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '自定义强密码'; FLUSH PRIVILEGES; EXIT;
步骤3:恢复正常启动模式
# 停止MySQL服务 sudo systemctl stop mysqld # 清除跳过权限校验的启动参数 sudo systemctl unset-environment MYSQLD_OPTS # 重新启动MySQL服务 sudo systemctl start mysqld
步骤4:验证登录
sudo mysql -u root -p
输入刚才设置的自定义强密码,即可正常登录。
补充:完全重装MySQL的正确操作
如果上述方案执行有问题,可按以下步骤彻底重装获取新的临时密码:
# 卸载MySQL相关包 sudo yum remove -y mysql-community* mysql-server* # 删除残留数据和日志 sudo rm -rf /var/lib/mysql /var/log/mysqld.log # 重新安装 sudo yum install -y mysql-community-server # 启动服务 sudo systemctl start mysqld # 查询新生成的临时密码 sudo grep 'temporary password' /var/log/mysqld.log
用新查询到的临时密码登录后,会强制要求修改为自定义强密码,完成后即可正常使用。
内容的提问来源于stack exchange,提问作者user2006734
相关产品推荐
相关产品推荐

