mysql импортирует sql через cli с удаленного сервера - PullRequest
7 голосов
/ 29 октября 2008

я знаю, как импортировать файл sql через cli:

mysql -u USER -p DBNAME < dump.sql

но это если файл dump.sql локальный. как я могу использовать файл на удаленном сервере?

Ответы [ 3 ]

23 голосов
/ 29 октября 2008

Вы не сказали, какой у вас сетевой доступ к удаленному серверу.

Если у вас есть SSH-доступ к удаленному серверу, вы можете передать результаты удаленного mysqldump команде mysql. Я только что проверил это, и он отлично работает:

ssh remote.com "mysqldump remotedb" | mysql localdb

Я помещаю такие вещи, как пользователь, пароль, хост, в .my.cnf, поэтому я не постоянно их печатаю - раздражает и плохо для безопасности в многопользовательских системах, вы кладете пароли в виде открытого текста в вашу bash_history! Но вы можете легко добавить материал -u -p -h обратно с обоих концов, если вам это нужно:

ssh remote.com "mysqldump -u remoteuser -p'remotepass' remotedb" | mysql -u localuser -p'localpass' localdb

Наконец, вы можете передать через gzip, чтобы сжать данные по сети:

ssh remote.com "mysqldump remotedb | gzip" | gzip -d | mysql localdb
3 голосов
/ 30 июля 2015

Просто подумал, что я бы добавил к этому, поскольку у меня было очень мало места на моей локальной виртуальной машине, но если файл .sql уже существует на удаленном сервере, вы могли бы сделать;

ssh <ip-address> "cat /path/to/db.sql" | mysql -u <user> -p<password> <dbname>
0 голосов
/ 29 октября 2008

Я бы использовал wget , чтобы либо загрузить его в файл, либо передать по конвейеру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...