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

无网络异地环境下MySQL全库/单表备份与迁移方法咨询

我来给你一步步拆解这个离线迁移MySQL数据的问题,毕竟这种跨无网络环境的备份恢复需求,在运维场景里太常见了~

第一步:在源服务器完成本地备份

不管是全库还是单表,MySQL官方的mysqldump工具都是最靠谱的选择,操作起来也简单:

全库备份

直接导出所有数据库,命令格式如下:

# 建议加上--single-transaction避免锁表(适合InnoDB引擎),--routines --triggers --views导出存储过程、触发器和视图
mysqldump -u [你的MySQL用户名] -p --single-transaction --routines --triggers --views --all-databases > full_backup_$(date +%Y%m%d).sql

执行后会提示你输入MySQL密码,完成后当前目录就会生成带日期的全库备份文件。

单表备份

只导出指定数据库里的某张表,命令是:

mysqldump -u [你的MySQL用户名] -p --single-transaction --routines --triggers [目标数据库名] [目标表名] > table_backup_$(date +%Y%m%d).sql

同样输入密码后就能得到单表的备份文件。

小提醒:如果是MyISAM引擎,建议用--lock-tables参数代替--single-transaction,保证备份数据的一致性。

第二步:离线传输备份文件到异地计算机

因为两台机器没联网,只能靠物理介质中转:

  • 把备份文件复制到U盘、移动硬盘或者光盘这类存储介质上
  • 为了防止文件在传输过程中损坏,最好生成校验码验证完整性:
    在源服务器上生成校验码:
    md5sum full_backup_20240520.sql > backup_checksum.txt
    
    把备份文件和校验码文件一起拷到异地机器后,执行校验:
    md5sum -c backup_checksum.txt
    
    如果输出OK就说明文件没问题。
第三步:在异地计算机创建并恢复数据库

首先得确保异地机器安装了版本兼容的MySQL(尽量和源库大版本一致,比如都是8.0.x,避免恢复时出现兼容性问题),然后按以下步骤操作:

1. 创建空数据库(单表恢复需要这一步,全库恢复可跳过)

登录MySQL控制台:

mysql -u root -p

输入密码后创建目标数据库:

CREATE DATABASE [目标数据库名] CHARACTER SET [源库字符集] COLLATE [源库排序规则];

注意:字符集和排序规则要和源库完全一致,不然会出现乱码!比如源库用的是utf8mb4,这里就别写成utf8。

2. 恢复备份数据

  • 全库恢复:直接导入备份文件到MySQL
    mysql -u [MySQL用户名] -p < full_backup_20240520.sql
    
  • 单表恢复:指定目标数据库导入
    mysql -u [MySQL用户名] -p [目标数据库名] < table_backup_20240520.sql
    

3. 验证恢复结果

登录MySQL,检查数据是否和源库一致:

USE [目标数据库名];
-- 查看表结构
DESC [表名];
-- 统计数据行数,和源库对比
SELECT COUNT(*) FROM [表名];
额外优化建议

如果备份文件很大,可以在备份时直接压缩,节省存储空间和传输时间:

# 备份并压缩
mysqldump ... | gzip > full_backup_20240520.sql.gz
# 恢复时解压并导入
gunzip < full_backup_20240520.sql.gz | mysql -u [用户名] -p

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:23:46