You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移至MariaDB时,导入MySQL备份如何排除系统数据库?

MySQL迁移MariaDB:排除系统数据库导入的方案

方案1:重新生成不含系统库的备份(最优解)

如果还能访问原MySQL服务器,直接用mysqldump导出时排除系统数据库,从根源避免导入冲突:

mysqldump -u root -p --all-databases \
  --ignore-database=mysql \
  --ignore-database=information_schema \
  --ignore-database=performance_schema \
  --ignore-database=sys \
  > clean_backup.sql

说明:mysql是核心权限系统库,information_schema/performance_schema/sys是元数据、性能统计类系统库,MariaDB自身会维护这些库,无需手动导入。

方案2:过滤现有备份文件中的系统库内容

如果无法重新备份,用命令行工具过滤原备份里的系统库相关语句:

# 过滤掉系统库的创建、使用、删除语句
grep -vE '^(CREATE DATABASE|USE|DROP DATABASE).*`mysql`|`information_schema`|`performance_schema`|`sys`' backupdb.sql > filtered_backup.sql

# 导入过滤后的备份
mysql -u root -p < filtered_backup.sql

提示:如果备份包含系统库的表操作语句,可进一步用sed删除对应段落,比如删除USE mysql;之后直到下一个USE命令之间的所有内容。

方案3:手动编辑备份文件(适合小体积备份)

直接打开backupdb.sql,删除所有涉及mysql、information_schema、performance_schema、sys的内容,包括:

  • CREATE DATABASE /*!32312 IF NOT EXISTS*/ mysql ...类语句
  • USE mysql;语句
  • 所有mysql库下的表创建、数据插入代码

额外注意:迁移用户权限

因为排除了mysql库,原MySQL的用户权限不会自动同步,可单独导出权限相关表再导入:

# 从原MySQL导出权限表
mysqldump -u root -p mysql user db tables_priv columns_priv > user_perms.sql

# 导入到MariaDB
mysql -u root -p mysql < user_perms.sql

导入后执行FLUSH PRIVILEGES;使权限生效。

内容的提问来源于stack exchange,提问作者jstuardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 12:30:03