如何在运行 Amazon Linux 2 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例上重置 MariaDB 根密码?
简短描述
默认情况下,Amazon Linux 2 上的 MariaDB 5.5 没有根密码。如果您为 MariaDB 创建了根密码,然后将自己锁在您的数据库之外,则必须重置根密码。
**注意:**重置根密码时,无法查询数据库。
解决方法
1. 确保您拥有 MariaDB 数据目录所在卷的最新快照。如果需要,您可以利用此快照重新创建卷。
2. 停止 MariaDB 服务:
sudo systemctl stop mariadb
3. 在安全模式下启动 MariaDB:
sudo mysqld_safe --skip-grant-tables --skip-networking &
4. 运行以下命令将 MariaDB 命令历史记录设置为 /dev/null,然后登录 MariaDB 监视器:
重要信息:设置命令 history /dev/null 可防止您的密码信息以明文形式出现在历史记录文件中。完成完整过程后,可以重置此值。
export MYSQL_HISTFILE=/dev/null
mysql -u root
5. 更新您的 MariaDB 根密码:
UPDATE mysql.user SET Password = PASSWORD('new_password_here') WHERE User = 'root';
输出将与以下类似:
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
6. 刷新权限以重新加载授权表。您的新密码将在重新加载后生效:
FLUSH PRIVILEGES;
7. 退出 MariaDB 监视器:
exit
8. 停止 MariaDB 进程:
sudo kill `sudo cat /var/run/mariadb/mariadb.pid`
**注意:**终止进程可能需要几秒钟。
9. 启动 MariaDB 服务:
sudo systemctl start mariadb
10. 测试新的 MariaDB 根密码:
mysql -u root -p