先确认用户列表,再通过ALTER USER语句或动态脚本批量修改密码,并刷新权限。具体步骤:1. 执行SELECT User, Host FROM mysql.user; 查看所有用户;2. 使用ALTER USER 'user'@'host' IDENTIFIED BY '新密码'; 逐个修改,或将多条语句写入.sql文件执行;3. 推荐使用SELECT CONCAT("ALTER USER '", User, "'@'", Host, "' IDENTIFIED BY '新密码';") FROM mysql.user WHERE User IN (...)生成批量语句;4. 修改后运行FLUSH PRIVILEGES; 刷新权限;5. 注意密码策略、Host匹配,操作前备份mysql.user表并选择维护窗口,防止影响业务。

在MySQL数据库管理中,有时需要为多个用户批量修改密码,尤其是当系统安全策略要求定期更换密码或发生安全事件时。手动逐个修改效率低且容易出错,掌握正确的批量操作方法能显著提升运维效率。
确认当前用户列表
在执行密码修改前,先查看当前数据库中存在的用户及其主机信息,避免误操作。
SELECT User, Host FROM mysql.user;这条语句会列出所有用户和对应的访问主机(如localhost、%等),确保你知道要修改哪些账户。
使用SQL语句批量修改密码
可以通过编写多条ALTER USER语句来一次性修改多个用户的密码。适用于MySQL 5.7及以上版本。
示例:
ALTER USER 'user1'@'localhost' IDENTIFIED BY 'NewPass123!';ALTER USER 'user2'@'%' IDENTIFIED BY 'NewPass123!';
ALTER USER 'user3'@'192.168.%.%' IDENTIFIED BY 'NewPass123!';
将上述语句写入一个.sql脚本文件,然后通过命令行执行:
mysql -u root -p word_change.sql生成动态修改脚本(推荐方式)
如果用户数量较多,可以利用查询结果自动生成修改语句。
该版本面向个人用户及小型数字卡销售商开发,具有操作简捷、功能强大等特点,且安全及稳定性突出修正说明:1、纠正了部分页面的翻页错误;2、纠正了后台统计不能清零的错误;3、纠正了后台商品管理修改后出错以及无法彻底删除的错误;4、纠正了注册时不能检测用户名是否存在的错误;5、纠正了用户无法修改密码的错误;6、新增“更多新闻”;7、新增会员登陆验证码;8、去除多余及
执行以下SQL生成ALTER语句:
SELECT CONCAT("ALTER USER '", User, "'@'", Host, "' IDENTIFIED BY '新密码';")FROM mysql.user
WHERE User IN ('user1', 'user2', 'user3');
复制输出结果并执行,即可完成批量修改。你也可以将结果导出为文件自动运行。
注意事项与权限刷新
修改密码后必须刷新权限,使更改立即生效。
FLUSH PRIVILEGES;注意:
- 确保新密码符合MySQL的密码策略(如有启用validate_password插件)
- 远程用户注意Host字段匹配,'user'@'%' 和 'user'@'localhost'是不同账户
- 建议在维护窗口操作,避免影响业务连接
- 修改前备份用户表:CREATE TABLE mysql.user_backup AS SELECT * FROM mysql.user;
基本上就这些。只要理清用户清单,用好SQL拼接功能,多用户密码批量修改并不复杂,但务必谨慎操作,防止锁死管理员账户。









