Как использовать дамп MySQL с удаленной машины - PullRequest
67 голосов
/ 09 декабря 2011

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

Ответы [ 7 ]

74 голосов
/ 09 декабря 2011

Попробуйте с Mysqldump

#mysqldump --host=the.remotedatabase.com -u yourusername -p yourdatabasename > /User/backups/adump.sql
51 голосов
/ 09 декабря 2011

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

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

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

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

Примечание. Отсутствие пробела между -p и паролем mysql не является опечаткой. Тем не менее, если вы оставите флаг -p присутствующим, а действительный пароль пустым, вам будет предложено ввести пароль. Иногда рекомендуется не использовать пароли в истории Bash.

37 голосов
/ 16 февраля 2014

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

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

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

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

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

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

Хотя это просто опция , в принципе нет особых причин, по которым вы не используете эту опцию с mysqldump.

20 голосов
/ 04 мая 2014

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

Вы также можете выгрузить sql и скопировать его в одну строку:

mysqldump -u [username] -p[password] [database_name] | gzip > [filename.sql.gz]
3 голосов
/ 16 июня 2015
mysqldump -h [domain name/ip] -u [username] -p[password] [databasename] > [filename.sql]
1 голос
/ 02 августа 2018

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

mysqldump -u root -p --default-character-set=utf8mb4 [DATABASE TO BE COPIED NAME] > [NEW DATABASE NAME]
0 голосов
/ 25 сентября 2015

Это способ восстановления резервной копии после успешного резервного копирования файла .sql

.
mysql -u [username] [databasename]

И выберите файл sql с помощью этой команды:

source MY-BACKED-UP-DATABASE-FILE.sql
...