Автоматизация MySQLdump на локальном компьютере (Windows) - PullRequest
4 голосов
/ 03 июля 2011

Я хотел бы автоматизировать mysqldump на своем компьютере с удаленного хоста, и я не могу понять, как это сделать.

Я полагаю, что я должен запустить mysqldump через туннель SSH, но этоусложняется тем, что мой локальный компьютер - машина с Windows XP.Я использую замазку, чтобы открыть туннель следующим образом:

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

Примечание: я не могу просто подключиться к серверу mysql удаленно.

Ответы [ 4 ]

4 голосов
/ 03 июля 2011

Вместо PuTTY загрузите версию командной строки plink.exe. Затем, используя те же параметры соединения, вы можете запустить mysqldump через plink и сохранить результаты локально. 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 голос
/ 11 августа 2016

Вы можете автоматизировать этот процесс, настроив две вещи с помощью крон

1 Вы должны генерировать MYSQLDUMP на регулярной основе, создав cron с помощью команды ниже на вашей удаленной машине.

Команда MYSQLDUMP

MYSQLDUMP -uuser -p --all-database> имя_файла.sql

2. Вы должны создать cron для передачи файла с удаленного сервера на локальный компьютер с помощью команды SCP, которая упоминается ниже.

Команда Linux SCP

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

0 голосов
/ 29 апреля 2014

Опираясь на то, что дал мне @Merhael Berkowski (и адаптируясь к Linux, который теперь все, что я использую), я получаю две команды для туннелирования до Сервер A для доступа к серверу MySQL на Сервер 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
0 голосов
/ 05 августа 2011

Это работает для меня (однострочный код в файле 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>

C: \ MyProject \ dbDump.log

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...