将MySQLdump自动化到本地计算机(Windows)

时间:2011-07-03 18:53:04

标签: mysql windows ssh mysqldump putty

我想从远程主机向我的计算机自动化mysqldump,我无法弄清楚如何做到这一点。

我想我应该通过SSH隧道运行mysqldump,但由于我的本地计算机是Windows XP计算机,这变得很复杂。我正在用腻子开这样的隧道:

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

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

4 个答案:

答案 0 :(得分:4)

而不是PuTTY,请下载命令行版本plink.exe。然后使用相同的连接参数,您可以通过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

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

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

答案 1 :(得分:1)

您可以通过在crons的帮助下设置两件事来自动执行此过程

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

MYSQLDUMP Command

MYSQLDUMP -uuser -p --all-databases> file_name.sql

<强> 2。您必须创建一个cron,使用下面提到的SCP Command将文件从远程服务器传输到本地计算机。

Linux SCP Command

scp user @ remote_ip:〜/ mysql_dump_file_name.sql ./

答案 2 :(得分:0)

这适用于我(myBackup.bat文件中的一行代码):

  

mysqldump --result-file = C:\ myProject \ dbDump.dump --port = 21

     

- host = localhost --user = dbUser --password = dbPassword dbName | plink -L 21:localhost:3306 -ssh mysshUser@domain.com -pw mysshPassword&gt;

     

C:\ myProject的\ dbDump.log

答案 3 :(得分:0)

在@Michael Berkowski给我的基础上(并适应Linux,现在我使用的全部内容),我最终得到两个用于隧道连接到服务器A 以访问MySQL服务器的命令< strong>服务器B :

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