在Linux系统中管理MySQL数据库时,修改用户密码是最基础也最常见的运维操作。无论你是刚安装完MySQL需要设置初始密码,还是日常安全维护中定期更换密码,都可以通过命令行快速完成。下面介绍几种实用的方法。

使用mysqladmin命令修改密码
如果你知道当前的root密码,可以使用mysqladmin工具直接修改。该命令是MySQL自带的管理工具,语法简单。
// 将old_pass替换为旧密码,new_pass替换为新密码 mysqladmin -u root -p'old_pass' password 'new_pass' // 如果提示输入密码交互式执行 mysqladmin -u root -p password
执行后按提示输入旧密码,再输入两次新密码即可完成修改。
登录MySQL后执行SQL修改
另一种方式是先登录MySQL终端,再通过SQL语句修改密码。不同版本语法稍有区别。
MySQL 5.7及之前版本
// 登录MySQL
mysql -u root -p
// 执行修改密码语句
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_pass');
FLUSH PRIVILEGES;
MySQL 8.0及之后版本
// 使用ALTER USER语法 ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_pass'; FLUSH PRIVILEGES;
忘记密码时重置root密码
如果忘记了root密码,需要停止MySQL服务,以跳过权限检查的方式启动,再进行修改。
// 停止MySQL服务 systemctl stop mysqld // 以安全模式跳过权限表启动 mysqld_safe --skip-grant-tables & // 无密码登录 mysql -u root
登录后执行以下SQL重置密码:
// 切换系统库 USE mysql; // MySQL 8.0清空认证插件并改密 UPDATE user SET authentication_string='' WHERE user='root'; ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_pass'; // 退出并重启服务 EXIT;
// 退出安全模式并正常启动 systemctl restart mysqld
注意事项
- 修改密码后务必执行
FLUSH PRIVILEGES;使权限生效。 - 生产环境避免使用弱密码,建议包含大小写字母、数字和特殊字符。
- 若配置了
my.cnf中的客户端密码,记得同步更新该文件。
提示:操作前可对mysql库做逻辑备份,防止误操作导致账户异常无法登录。