自动将MySQL转储到本地计算机(Windows)



我想从远程主机自动将mysqldump转储到我的计算机,但我不知道如何做到这一点。

我想我应该通过SSH隧道运行mysqldump,但由于我的本地计算机是WindowsXP机器,这变得很复杂。我正在用油灰开一条隧道,就像这样:

putty -load "[my saved session]" -L [localport]:localhost:3306 -N

注意:我不能只远程连接到mysql服务器。

下载命令行版本plink.exe而不是PuTTY。然后使用相同的连接参数,您可以通过plink运行mysqldump并将输出保存在本地。PLink可从与PuTTY相同的下载页面获得。

# setup the tunnel with plink
plink -load "[my saved session]" -L [localport]:localhost:3306
# Mysqldump your local port, redirected to outfile
mysqldump --port=[localport]  -h localhost -uuser -ppassword dbname > outfile

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

或者,另一种方法是在与plink相同的命令行中执行mysqldump,将其重定向到本地机器上的outfile

plink -load "[my saved session]" mysqldump -uuser -ppassword dbname > outfile

您可以通过在crons 的帮助下设置两件事来自动化这个过程

1您必须通过在远程机器上使用以下命令创建cron来定期生成MYSQLDUMP

MYSQLDUMP命令

MYSQLDUMP-uuser-p--所有数据库>file_name.sql

2.您必须创建一个cron,以便使用下面提到的SCP命令将文件从远程服务器传输到本地计算机

Linux SCP命令

scpuser@remote_ip:~/mysql_dump_file_name.sql./

这对我有效(myBackup.bat文件中的一行代码(:

mysqldump--结果文件=C:\myProject\dbDump.dump--端口=21

--host=localhost--user=dbUser--password=dbPassword dbName|plink-L 21:localhost:3306-sshmysshUser@domain.com-pw myshPassword>

C: \myProject\dbDump.log

在@Michael Berkowski给我的基础上(并适应Linux,这是我现在使用的全部(,我最终得到了两个命令,用于隧道传输到ServerA以访问Server B上的MySQL服务器:

ssh -f -L [localPort]:[serverB]:[serverB_mysqlPort] --port [serverA_sshPort] user@serverA -N
mysqldump -u[user] -p[password] -P[localPort] -h 127.0.0.1 [databaseName] > outfile

相关内容

最新更新