Создайте резервную копию mysql с сервера, загрузите локально с помощью scp и замените базу данных mamp - PullRequest
0 голосов
/ 28 июня 2010

Я создаю фрагмент, который будет использоваться в моем терминале Mac OS X (bash), что позволит мне сделать следующее за один шаг:

  1. Войдите на мой сервер через ssh
  2. Создать резервную копию mysqldump из моей базы данных Wordpress
  3. Загрузите файл резервной копии на мой локальный жесткий диск
  4. Заменить мою локальную базу данных Mamp Pro mysql

Идея состоит в том, чтобы создать локальную версию моего текущего онлайн-сайта для разработки. Пока у меня есть это:

ssh server 'mysqldump -u root -p'mypassword' --single-transaction wordpress_database > wordpress_database.sql' && scp me@myserver.com:~/wordpress_database.sql /Users/me/Downloads/wordpress_database.sql && /Applications/MAMP/Library/bin/mysql -u root -p'mylocalpassword' wordpress_database < /Users/me/Downloads/wordpress_database.sql

Очевидно, я немного новичок в этом, и я думаю, что там есть много ненужной избыточности. Тем не менее, это работает. Да, и команда ssh ssh server работает, потому что я создал псевдоним в локальном файле .ssh, чтобы сделать этот бит.

Вот что я хотел бы помочь с:

  1. Можно ли это сократить? Сделано проще?
  2. Я хорошо это делаю? Есть ли лучший способ?
  3. Как я могу добавить к этому сжатие gzip?

Я ценю любое руководство по этому вопросу. Спасибо.

Ответы [ 3 ]

1 голос
/ 28 июня 2010

Вы можете выгрузить его со своего сервера в локальную базу данных за один шаг (с подсказкой gzip для сжатия):

ssh server "mysqldump -u root -p'mypassword' --single-transaction wordpress_database | gzip -c" | gunzip -c | /Applications/MAMP/Library/bin/mysql -u root -p'mylocalpassword' wordpress_database

Двойные кавычки являются ключевыми здесь, так как вы хотите, чтобы gzip выполнялся на сервере, а gunzip - локально.

Я также храню свои пароли mysql в ~ / .my.cnf (и chmod 600 этот файл), чтобы мне не приходилось вводить их в командной строке (где они будут видны другим пользователям в системе) ):

[mysql]
password=whatever

[mysqldump]
password=whatever
0 голосов
/ 10 сентября 2015

Существует скрипт на python, который загружает файл дампа sql в локальный каталог.Вы можете взглянуть на скрипт и немного изменить его, чтобы выполнить ваши требования:

download-remote-mysql-dump-local-using-python-script

0 голосов
/ 28 июня 2010

Я бы тоже так поступил.

Чтобы ответить на ваш вопрос № 3:

В: Как я могу добавить к этому сжатие gzip?

A:Вы можете запустить gzip wordpress_database.sql сразу после команды mysqldump, а затем scp заархивированный файл (wordpress_database.sql.gz)

...