MySQL权限备份有三种可靠方法:导出权限表数据(推荐日常使用)、生成GRANT语句、整库备份mysql系统库;需根据迁移、审计或灾备需求选择,并确保备份账号具备最小必要权限。

MySQL 权限配置不能靠“猜”或“重设”,必须通过可靠方式备份。最实用、可恢复、兼容性好的方法就三种:导出权限表结构数据、生成 GRANT 语句、整库备份 mysql 系统库。选哪种,取决于你要迁移、审计,还是做灾难恢复。
MySQL 的用户和权限信息都存在 mysql 库的几张核心表里:user、db、tables_priv、columns_priv、procs_priv。用 mysqldump 把它们导出即可:
mysqldump -u root -p --single-transaction mysql user db tables_priv columns_priv procs_priv > priv_backup.sql--single-transaction 能避免锁表,适合生产环境在线备份--routines;若含事件(EVENT),再加 --events
mysql -u root -p mysql 即可(注意先停掉应用或确保无并发写权限表)
相比二进制或表结构导出,GRANT 语句更直观,能看清每个用户具体有哪些权限,也方便人工审核或跨版本迁移:
SHOW GRANTS FOR 'app_user'@'10.20.%';
mysql -u root -p -N -s -e "SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user!=''" | mysql -u root -p --skip-column-names | sed 's/$/;/g' > grants_backup.sql
FILE 权限)REQUIRE、WITH GRANT OPTION 等关键细节如果你需要保留插件、角色、默认密码策略、时区表、help_topic 等全部系统级配置,那就别只导权限表,直接备份整个 mysql 库:
mysqldump -u root -p --single-transaction --routines --events --triggers mysql > mysql_full_backup.sqlmysql.role_edges 表在 5.7 中不存在)authentication_string 字段,即加密后的密码无论选哪种方式,备份账号本身要有足够且最小化权限:
CREATE USER 'bkp_user'@'localhost' IDENTIFIED BY 'StrongPass!2025';GRANT SELECT ON mysql.* TO 'bkp_user'@'localhost';GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bkp_user'@'localhost';FLUSH PRIVILEGES;
--single-transaction,可省略 LOCK TABLES;若用 --master-data,则必须有 RELOAD
~/.my.cnf 配置文件更安全)
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号