it-swarm.com.ru

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

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

64
Harsha

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

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

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

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

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

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

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

50
Ian Jamieson

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

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

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

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

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

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

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

35
datasn.io

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

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

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

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

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