mysql импортирует sql через cli с удаленного сервера

StackOverflow https://stackoverflow.com/questions/248219

Вопрос

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

mysql -u USER -p DBNAME < dump.sql

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

Это было полезно?

Решение

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

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

ssh remote.com "mysqldump remotedb" | mysql localdb

Я помещаю такие вещи, как пользователь, пароль, хост, в .my.cnf , поэтому я не постоянно их печатаю - раздражает и плохо для безопасности в многопользовательских системах, вы вводите пароли в виде открытого текста в ваша история Но вы можете легко добавить материал -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

Другие советы

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

ssh <ip-address> "cat /path/to/db.sql" | mysql -u <user> -p<password> <dbname>

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top