mysql如何使用mysql pump迁移数据库

来源:这里教程网 时间:2026-02-28 20:06:45 作者:

使用 MySQL Shell 的 mysqlpump 进行数据库迁移

mysqlpump 是 MySQL 官方提供的逻辑备份工具,从 MySQL 5.7 开始推荐用于替代 mysqldump。它支持并行导出、压缩、分库分表导出等功能,适合中大型数据库的迁移和备份。

1. 确认 mysqlpump 是否可用

确保你的 MySQL 安装包含了 mysqlpump 工具。通常在 MySQL 安装目录的 bin 路径下:

which mysqlpump
# 或
mysqlpump --version

如果提示命令未找到,请确认是否安装了完整的 MySQL Server 或 MySQL Shell 工具包。

2. 使用 mysqlpump 导出数据库

基本语法如下:

mysqlpump -u [用户名] -p[密码] [选项] [数据库名] > backup.sql

常见用法示例:

导出单个数据库
mysqlpump -u root -p my_database > my_database_backup.sql
导出多个数据库
mysqlpump -u root -p --databases db1 db2 > multi_db_backup.sql
导出所有数据库(包括系统库)
mysqlpump -u root -p --all-databases > full_backup.sql
启用压缩以减小文件体积
mysqlpump -u root -p --compress-output=ZLIB my_database > compressed_backup.sqlz
注意:压缩后文件需用
mysqlpump --decompress
恢复。
并行导出提升速度(适用于大库)
mysqlpump -u root -p --default-parallelism=4 --chunk-filesize=100 my_database > parallel_backup.sql

3. 将备份文件迁移到目标服务器

使用 scp、rsync 或其他方式将导出的 SQL 文件传输到目标 MySQL 服务器:

scp my_database_backup.sql user@target_host:/tmp/

4. 在目标服务器导入数据

导入前确保目标 MySQL 版本兼容,且用户有足够权限。

导入普通 SQL 备份
mysql -u root -p my_database < my_database_backup.sql
导入压缩备份
mysqlpump --decompress -u root -p my_database < compressed_backup.sqlz
导入时创建数据库(若不存在): 先手动创建:
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS my_database;"
再导入。

5. 验证迁移结果

登录目标数据库,检查表结构和数据是否完整:

USE my_database;
SHOW TABLES;
SELECT COUNT(*) FROM some_table;

对比源库和目标库的数据量和关键记录,确保一致性。

基本上就这些。mysqlpump 操作简单,适合跨主机迁移中小型数据库。注意网络稳定性、磁盘空间和字符集设置,避免导入失败。对于超大数据库,建议结合物理备份工具如 Percona XtraBackup。

相关推荐