Резервное копирование и восстановление mysqldump на удаленный сервер

Как я могу использовать mysqldump для резервного копирования и восстановления базы данных на удаленном сервере?

Оба имеют root-доступ. Я использую шпаклёвку для выполнения этого.

До сих пор я пробовал следующее:

mysqldump -u root -p >z*[email protected] masdagn_joom15 | mysql \ -u root -p g2154hE6-AsXP --host=207.210.71.26 -C masdagn_joom15temp \g

но он отказался

локальный пароль: > z * x311a! @

удаленный пароль: g2154hE6-AsXP

Ответ 1

Эта ссылка содержит информацию о резервном копировании и восстановлении с помощью mysqldump. Он также дает несколько примеров с удаленным сервером.

Важными командами из этой ссылки являются:

резервная копия:

mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

восстановить:

mysql -u root -p[root_password] [database_name] < dumpfilename.sql

Ответ 2

mysqldump --user=username --password=pwd db_name | bzip2 -c > /backup_dir/db_name.sql.bz2

вы можете вставить эту часть в script, после чего вы можете использовать FTP для передачи в другое место.

Чтобы восстановить, вы можете

bzip2 -d db_name.sql.bz2
mysql --user=username --password=pwd db_name < db_name.sql

Ответ 3

Ваш локальный пароль содержит символ >, который интерпретируется как символ перенаправления большинством оболочек. Как правило, это значительно упростит вашу жизнь, если вы сохраните свои пароли MySQL в алфавитном порядке [A-Za-z0-9]. И это сделает вашу систему более безопасной, если вы не будете публично публиковать свои пароли.

Ответ 4

[local-server]# mysqldump -u root -prootpswd db | mysql \
                 -u root -ptmppassword --host=remote-server -C db1

[Примечание: перед хостом есть два - (дефис)]

Обратите внимание, что сначала необходимо создать базу данных db1 на удаленном сервере, прежде чем выполнять следующую команду.

Ответ 5

вот что я делаю для быстрого сброса на другой удаленный сервер... предполагая, что вы установили ssh-ключ между двумя серверами

  • создать файл dump-to-server.sh
  • chmod для исполняемого файла (chmod 0755 dump-to-server.sh)
  • запустите синхронизацию ./dump-to-server.sh schema_name [email protected]

dump-to-server.sh

\#!/bin/bash

if [[ -z "$1" || -z "$2" ]]; then
  echo "--------- usage ---------";
  echo "./dump-to-server.sh schema_name [email protected]";
  echo "";
else
  mysqldump --opt "$1" | gzip -c | ssh "$2" "gunzip -c | mysql $1"
fi