我想从远程主机向我的计算机自动化mysqldump,我无法弄清楚如何做到这一点。
我想我应该通过SSH隧道运行mysqldump,但由于我的本地计算机是Windows XP计算机,这变得很复杂。我正在用腻子开这样的隧道:
putty -load "[my saved session]" -L [localport]:localhost:3306 -N
注意:我不能只是远程连接到mysql服务器。
答案 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 -uuser -p --all-databases> file_name.sql
<强> 2。您必须创建一个cron,使用下面提到的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