MySQL 数据库迁移方法汇总
MySQL 数据库迁移方法汇总
本文档汇总了常见的 MySQL 数据库从一个主机迁移到另一个主机的方案和工具,适用于不同规模和需求的迁移场景。
1. mysqldump
特点
- 最通用、最常用的逻辑备份工具
- 适合小到中型数据库的全量迁移
导出数据库
mysqldump -h source_host -u user -p --databases dbname > dbname.sql
导出所有数据库
mysqldump -h source_host -u user -p --all-databases > all.sql
导入到目标主机
mysql -h target_host -u user -p < dbname.sql
2. mysqlpump
特点
- 多线程导出,速度快于 mysqldump
- 适合中大型数据库导出
导出数据库
mysqlpump -h source_host -u user -p --databases dbname > dbname.sql
3. mydumper / myloader
特点
- 社区推荐的高性能导出导入工具
- 支持多线程并发,适合大规模数据迁移
导出数据
mydumper -h source_host -u user -p password -B dbname -o /tmp/dbdump
导入数据
myloader -h target_host -u user -p password -B dbname -d /tmp/dbdump
4. 主从复制(Replication)
特点
- 适合要求零停机的迁移场景
- 通过配置目标服务器为从库,实现持续同步
- 完成同步后切换流量到新主机
5. 逻辑备份 + 远程导入
直接管道传输
mysqldump -h source_host -u user -p dbname | mysql -h target_host -u user -p dbname
注意事项
项目 | 注意点 |
---|---|
权限 | 源库和目标库均需相应权限 |
网络 | 确保两台机器网络互通,MySQL端口(3306)开放 |
表结构冲突 | 目标库存在同名表时建议加 --add-drop-table |
事务支持 | 使用 --single-transaction 以减少锁表 |
GTID与二进制日志 | 迁移时注意 --set-gtid-purged 参数的配置 |
总结
工具/方案 | 适用场景 | 备注 |
---|---|---|
mysqldump | 小中型数据库 | 简单易用 |
mysqlpump | 中大型数据库 | 多线程加速 |
mydumper/myloader | 大型数据库 | 高性能并行导入导出 |
主从复制 | 零停机或持续同步 | 复杂配置,但可实现热迁移 |