«

一键导出 MySQL 所有用户+权限+密码

时间:2026-4-20 14:54     作者:Anglei     分类: 数据库


导出 MySQL 所有用户 + 权限 + 密码(可直接在另一台服务器导入)

不用写复杂脚本,一条命令搞定👇

一、直接导出所有 MySQL 用户(不含系统用户)

Linux 命令行 执行(不是 MySQL 内):

mysql -uroot -p -e "SELECT CONCAT('CREATE USER IF NOT EXISTS \'',user,'\'@\'',host,'\' IDENTIFIED WITH ',plugin,' AS \'',authentication_string,'\';') FROM mysql.user WHERE user NOT IN ('mysql.infoschema','mysql.session','mysql.sys');" > mysql_users.sql

执行后会生成:
mysql_users.sql
里面就是所有业务用户的创建语句(包含加密密码、认证方式、host)


二、再导出所有用户的权限

mysqldump -uroot -p mysql user db tables_priv columns_priv procs_priv > mysql_privileges.sql

三、最终你得到 2 个文件

  1. mysql_users.sql
    所有用户:root、docu、fankui、maxada...
    包含:用户名、host、认证插件、加密密码

  2. mysql_privileges.sql
    所有用户的权限(哪个用户能访问哪个库)


四、在新服务器导入(直接用)

# 导入用户
mysql -uroot -p < mysql_users.sql

# 导入权限
mysql -uroot -p < mysql_privileges.sql

# 刷新权限
mysql -uroot -p -e "FLUSH PRIVILEGES;"

五、如果你只想【查看导出内容】

直接看:

cat mysql_users.sql

你会看到类似:

CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED WITH caching_sha2_password AS '*XXX';
CREATE USER IF NOT EXISTS 'docu'@'172.17.0.%' IDENTIFIED WITH caching_sha2_password AS '*XXX';
...

总结

你只需要复制 这 1 条命令,就能导出所有业务用户(含密码、host、插件)

mysql -uroot -p -e "SELECT CONCAT('CREATE USER IF NOT EXISTS \'',user,'\'@\'',host,'\' IDENTIFIED WITH ',plugin,' AS \'',authentication_string,'\';') FROM mysql.user WHERE user NOT IN ('mysql.infoschema','mysql.session','mysql.sys');" > mysql_users.sql

本文完结,相关标签: mysql

 版权所有:Anglei
 文章标题:一键导出 MySQL 所有用户+权限+密码
 除非注明,本站文章如未特殊说明均为 MAXADA社区知识库 原创,且版权所有,请勿用于任何商业用途。

推荐阅读:

看完后感想如何?

路过(0)

雷人(0)

握手(0)

鲜花(0)

鸡蛋(0)
分享到: