AWS EC2实例中MySQL默认root用户密码及启动异常问题
解决AWS EC2上MySQL root密码重置及
mysql_secure_installation报错问题 步骤1:停止正在运行的MySQL服务
先确保MySQL服务完全停止,避免端口冲突:
# Ubuntu/Debian系统执行 sudo systemctl stop mysql # Amazon Linux/RHEL/CentOS系统执行 sudo systemctl stop mysqld
步骤2:跳过权限表启动MySQL
MySQL默认禁止以系统root用户运行服务,需指定mysql系统用户启动无权限验证的服务:
sudo mysqld --skip-grant-tables --user=mysql &
执行后终端无输出属于正常现象,服务会在后台启动。
步骤3:无密码登录并重置root密码
新开一个终端窗口,直接登录MySQL(无需输入密码):
mysql -u root
进入MySQL命令行后,根据你的MySQL版本执行对应语句重置密码(将your_new_password替换为自定义密码):
-- 切换到系统数据库 USE mysql; -- MySQL 5.7及以下版本用这条 UPDATE user SET Password=PASSWORD('your_new_password') WHERE User='root'; -- MySQL 8.0及以上版本用这条 ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password'; -- 刷新权限使更改生效 FLUSH PRIVILEGES; -- 退出MySQL EXIT;
步骤4:恢复正常服务并执行安全配置
先终止后台的无权限验证服务:
sudo pkill mysqld
启动正常的MySQL服务:
# Ubuntu/Debian系统 sudo systemctl start mysql # Amazon Linux/RHEL/CentOS系统 sudo systemctl start mysqld
现在执行mysql_secure_installation,输入刚才设置的root密码即可完成安全配置:
sudo mysql_secure_installation
补充说明
mysqld_safe找不到:MySQL 8.0及部分新安装包已弃用或默认不包含该命令,直接用mysqld加参数即可实现相同功能。- 禁止root运行
mysqld:这是MySQL的安全限制,避免系统root权限泄露,必须指定--user=mysql启动服务。
内容的提问来源于stack exchange,提问作者namaw
相关产品推荐
相关产品推荐

