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

У меня есть база данных MySQL, существующая на удаленном сервере. У меня есть только право подключения sql. У меня нет FTP-доступа к серверу, и мне нужно сделать полный дамп базы данных. Я пробовал mysqldump, но проблема в том, что он создает вывод на сервере, и, поскольку у меня нет FTP, я не могу получить вывод с сервера.

Как я могу сделать чистую резервную копию и получить дамп на моей локальной машине (конечно, резервная копия должна быть восстановлена ​​​​на моей локальной машине)?


person john smith    schedule 23.10.2013    source источник
comment
Я не понимаю проблемы. mysqldump записывает дамп в стандартный вывод, а при перенаправлении он отправляется на локальный хост, а не на сервер.   -  person Barmar    schedule 24.10.2013
comment
для запуска mysqldump мне нужно сначала войти на сервер, которого у меня нет привилегии, у меня есть только sql-соединение с сервером Mysql   -  person john smith    schedule 24.10.2013
comment
mysqldump использует параметр --host для доступа к удаленному серверу, как это делает команда mysql.   -  person Barmar    schedule 24.10.2013


Ответы (6)


Вы можете указать имя сервера в качестве опции к mysqldump:

mysqldump --host servername dbname > dbname.sql
person Barmar    schedule 23.10.2013
comment
Я использовал его много раз, но всегда задавался вопросом - разве это не ужасный эксплойт? Я имею в виду, что любой, у кого есть хост и имя БД, может скопировать всю БД без пароля ?? - person Obmerk Kronen; 07.03.2014
comment
Он проверяет разрешения так же, как и любое другое использование mysql. - person Barmar; 07.03.2014

mysqldump --host hostaddress -P portnumber -u username -ppassword dbname > dbname.sql

Обычно удаленный порт MySQL — 3306. Вот пример:

mysqldump --host 192.168.1.15 -P 3306 -u dev -pmjQ9Y mydb > mydb.sql
person Henry    schedule 16.10.2014
comment
Один нюанс - убедитесь, что после -p ПАРОЛЬ НЕТ пробела. - person jpw; 14.01.2015
comment
man mysqldump: ... Указание пароля в командной строке следует считать небезопасным... dev.mysql.com/doc/refman/5.7/en/password-security-user.html - person alditis; 21.04.2017

Вы можете использовать инструментальные средства MySQL http://www.mysql.com/products/workbench/. , который может выполнять резервное копирование непосредственно в локальную папку через удобный интерфейс.

person user2849406    schedule 23.10.2013
comment
И, если у вас есть доступ к серверу только по SSH, Workbench тоже будет работать. И это доступно в Ubuntu: sudo apt-get install mysql-workbench. - person Rael Gugelmin Cunha; 12.01.2016

mysqldump.exe по умолчанию блокирует таблицы, поэтому во время дампа другие действия SQL невозможны. Без блокировки каких-либо таблиц используйте следующий синтаксис для резервного копирования полной удаленной базы данных и дампа всего на вашем локальном компьютере:

mysqldump -u username -p --single-transaction --quick --lock-tables=false -h ipaddress myDB > backup.sql

Измените username на свое собственное имя пользователя, измените ipaddress на удаленный IP-адрес и myDB на фактическую базу данных, для которой вы хотите создать резервную копию. Это запросит у вас пароль. После предоставления дамп запускается.

person Kurt Van den Branden    schedule 21.11.2017

Я использую для этого SQLyog, где мы можем подключиться к удаленному серверу и сделать резервную копию с помощью этого инструмента.

person Sathish D    schedule 25.10.2013

Если сервер допускает PHP, вы можете загрузить и попробовать администратор. Мне нравится это как замена PHPMyAdmin, и вы можете создавать резервные копии с ним!

person combuilder    schedule 06.02.2014