Как использовать дамп MySQL с удаленной машины
Как я могу создать резервную копию базы данных mysql, которая работает на удаленном сервере, мне нужно сохранить резервный файл на локальном ПК.
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 операции с базой данных:
- вычесть сумму из своих кредитов
- добавить снаряжение в свой арсенал
теперь, если дамп происходит между этими операциями, в следующий раз при восстановлении резервной копии пользователь потеряет приобретенный элемент, потому что вторая операция не сбрасывается в файл дампа SQL.
пока это просто опции, есть в основном не так много причин, почему вы не используете эта опция с mysqldump.
эта тема отображается на первой странице моего результата google, поэтому вот небольшой полезный совет для новичков.
вы также можете сбросить sql и gzip его в одной строке:
mysqldump -u [username] -p[password] [database_name] | gzip > [filename.sql.gz]