Как использовать дамп MySQL с удаленной машины


Как я могу создать резервную копию базы данных mysql, которая работает на удаленном сервере, мне нужно сохранить резервный файл на локальном ПК.

7 61

7 ответов:

попробуйте Mysqldump

#mysqldump --host=the.remotedatabase.com -u yourusername -p yourdatabasename > /User/backups/adump.sql

у вас есть доступ к SSH?

вы можете использовать эту команду в консоли для резервного копирования всей базы данных:

mysqldump -u [username] -p[password] [databasename] > [filename.sql]

Это на самом деле одна команда, за которой следует элемент > оператор, который говорит: "Возьмите вывод предыдущей команды и сохраните его в этом файле."

Примечание: отсутствие пробела между-p и паролем mysql не является опечаткой. Однако, если вы оставите -p флаг присутствует, но пароль пустой, то вам будет предложено для вашего пароль:. Иногда это рекомендуется, чтобы сохранить пароли из вашей истории bash.

никто ничего не упоминает о --single-transaction. Люди должны использовать его по умолчанию для таблиц InnoDB для обеспечения согласованности данных. В этом случае:

mysqldump --single-transaction -h [remoteserver.com] -u [username] -p [password] [yourdatabase] > [dump_file.sql]

это гарантирует, что дамп запускается в одной транзакции, которая изолирована от других, предотвращая резервное копирование частичной транзакции.

например, предположим, что у вас есть игровой сервер, где люди могут приобрести шестеренки с их кредитами учетной записи. Есть по сути 2 операции с базой данных:

  1. вычесть сумму из своих кредитов
  2. добавить снаряжение в свой арсенал

теперь, если дамп происходит между этими операциями, в следующий раз при восстановлении резервной копии пользователь потеряет приобретенный элемент, потому что вторая операция не сбрасывается в файл дампа SQL.

пока это просто опции, есть в основном не так много причин, почему вы не используете эта опция с mysqldump.

эта тема отображается на первой странице моего результата google, поэтому вот небольшой полезный совет для новичков.

вы также можете сбросить sql и gzip его в одной строке:

mysqldump -u [username] -p[password] [database_name] | gzip > [filename.sql.gz]
mysqldump -h [domain name/ip] -u [username] -p[password] [databasename] > [filename.sql]

пробовал все комбинации здесь, но это сработало для меня:

mysqldump -u root -p --default-character-set=utf8mb4 [DATABASE TO BE COPIED NAME] > [NEW DATABASE NAME]

вы можете выбрать другой путь :

mysql -u [username] [databasename]

и выберите свой файл sql, например:

source mydumpdatabase.sql