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

如何将远程MySQL数据库备份至另一CentOS服务器(120GB大库)

问题分析与解决方案

首先得明确:你给出的mysql> use db_name;和mysql> source backup-file.sql;这两条命令是数据库恢复命令,作用是把本地的backup-file.sql导入到数据库中,完全不是备份命令,所以用它们来完成你的备份需求是不可行的。

针对你的场景(本地空间不足,需直接将120GB的远程MySQL备份到另一台CentOS服务器),正确的做法是用mysqldump结合SSH管道,直接将备份数据流传输到目标服务器,全程不需要在本地存储备份文件。

正确的备份命令格式

你需要在本地CentOS服务器的Bash终端(不是MySQL交互终端)中执行类似这样的命令:

mysqldump -h 远程MySQL服务器IP -u 数据库用户名 -p 要备份的数据库名 | ssh 目标CentOS服务器用户名@目标服务器IP "cat > /目标服务器存储路径/backup-file.sql"

命令细节解释

  • mysqldump:MySQL官方备份工具,负责连接远程MySQL并导出数据库内容
  • -h 指定远程MySQL的IP地址,-u 指定登录用户名,-p 会提示你输入数据库密码
  • 管道符|:把mysqldump输出的备份数据直接传给后续SSH命令,不经过本地磁盘
  • ssh 目标CentOS服务器用户名@目标服务器IP:建立到目标服务器的SSH连接
  • "cat > /目标服务器存储路径/backup-file.sql":在目标服务器上将接收到的数据流写入指定路径的备份文件

关键注意事项

  • 为避免大备份过程中因需要输入SSH密码而中断,建议先在本地服务器和目标服务器之间配置SSH免密登录(生成SSH密钥对,将公钥传到目标服务器的~/.ssh/authorized_keys中)
  • 确保目标服务器的指定存储路径有足够空间(至少预留120GB以上,备份文件大小基本与原数据库相当)
  • 如果远程MySQL使用非默认3306端口,需在mysqldump后添加-P 端口号参数
  • 针对大体积InnoDB数据库,建议加上--single-transaction参数,可在不锁表的情况下完成一致性备份;如果是MyISAM引擎,需要加--lock-all-tables保证数据一致性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:44:17