我想从远程主机自动将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