mysql如何进行远程备份_mysql远程备份方法

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

MySQL远程备份的核心在于通过安全、稳定的方式将本地数据库导出并传输到远程服务器。最常用的方法是结合

mysqldump
SSH
scp
进行操作,既能保证数据完整性,又能避免直接暴露数据库端口。

使用mysqldump + SSH远程备份

这种方法无需开启MySQL的远程访问,利用SSH加密通道完成数据导出和传输,安全性高,适合大多数生产环境。

执行命令如下:

mysqldump -u [用户名] -p[密码] -h [本地MySQL地址] [数据库名] | ssh [远程用户]@[远程IP] "cat > /path/to/backup.sql"

说明:

[用户名]
替换为数据库登录用户,如root
-p
后直接跟密码(无空格),也可留空在执行时手动输入
[本地MySQL地址]
通常为localhost或127.0.0.1
[数据库名]
填写需要备份的具体数据库名称
远程部分通过
ssh
将输出重定向到远程服务器指定路径

例如:

mysqldump -u root -pmypassword -h localhost mydb | ssh user@192.168.1.100 "cat > /backup/mydb_$(date +%F).sql"

该命令会把本地

mydb
数据库备份,并以日期命名保存到远程服务器的
/backup/
目录下。

先本地导出再用scp传输

如果希望分步操作,可先在本地生成SQL文件,再通过

scp
上传到远程服务器。

步骤如下:

mysqldump -u 用户名 -p密码 数据库名 > /local/path/backup.sql
scp /local/path/backup.sql user@远程IP:/remote/path/

优点是便于校验本地文件后再上传,适合大数据库或网络不稳定环境。

开启远程访问后直接从远程备份(谨慎使用)

若需从远程机器直接连接并备份本地MySQL,需确保:

MySQL配置允许远程连接(修改
bind-address
或注释掉)
对应用户有远程访问权限(如
GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'password';
防火墙开放3306端口

然后在远程机器运行:

mysqldump -u 用户名 -p密码 -h 本地IP 数据库名 > backup.sql

此方式风险较高,建议仅在内网或配合SSL加密时使用。

自动化定时远程备份

结合Linux的

crontab
可实现自动定时备份。

编写脚本

backup_mysql.sh

#!/bin/bash
mysqldump -u root -pmypassword mydb | ssh user@192.168.1.100 "cat > /backup/mydb_$(date +\%F).sql"

添加执行权限并写入定时任务:

chmod +x backup_mysql.sh
crontab -e
# 添加:0 2 * * * /path/to/backup_mysql.sh  # 每天凌晨2点执行

基本上就这些。推荐优先使用

mysqldump + SSH
管道方式,安全高效,不占用本地磁盘空间。注意定期清理旧备份,防止存储溢出。

相关推荐

热文推荐