悠悠楠杉
网站页面
修改MySQL的root密码属于高风险操作,尤其在生产环境中,可能导致:
- 密码复杂度不足导致遗忘
- 权限配置错误引发服务中断
- 应用程序连接失败等连锁反应
备份是操作的前提,推荐使用以下命令快速备份用户权限数据:
sql
mysqldump --all-databases --routines --users > full_backup.sql
bash
mysql -u root -p
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
sql
FLUSH PRIVILEGES;
注意:密码需满足复杂度要求(建议包含大小写字母、数字、特殊符号,长度≥12位)。
bash
systemctl stop mysql
bash
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';" > /tmp/init.sql
bash
mysqld_safe --init-file=/tmp/init.sql &
bash
systemctl restart mysql
rm /tmp/init.sql # 删除临时脚本
sql
USE mysql;
sql
UPDATE user SET password=PASSWORD('新密码') WHERE user='root';
sql
UPDATE user SET authentication_string=CONCAT('*', UPPER(SHA1(UNHEX(SHA1('新密码'))))) WHERE user='root';
sql
FLUSH PRIVILEGES;
bash
mysql -u root -p新密码 -e "SELECT 1;"
SHOW PROCESSLIST
确认活跃连接ini
[client]
user=root
password=新密码
sql
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1');
sql
CREATE USER 'admin'@'%' IDENTIFIED BY '复杂密码';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
sql
INSTALL PLUGIN audit_log SONAME 'audit_log.so';
通过以上三种方案,可确保在不同场景下安全完成密码修改。无论选择哪种方法,切记备份优先、验证紧随、监控收尾的操作原则。