mysqldump \
--extended-insert=FALSE \
--no-create-info=TRUE \
db_name \
| ssh \
username@remote-host.example.com \
mysql \
--user=xx \
--password=xx \
dw
Как это работает:
mysqldump --extended-insert=FALSE --no-create-info=TRUE db_name
Создает дамп MySQL для db_name
и передает данные в вывод stdio
.
| ssh username@remote-host.example.com
Передает по трубопроводуstdio
поток в соединение ssh
с удаленным хостом
mysql --user=xx --password=xx dw
Команда mysql
, выполняемая на удаленном хосте соединением ssh
.Он читает поток stdio
, который передается через соединение ssh
и создается из дампа MySQL.Этот дамп создается локально, передается через ssh
и импортируется на удаленном хосте в базу данных dw.
Этот метод предпочтительнее, более безопасный и компактный, чем открытие протокола MySQL для широкого Интернета, чем любой компетентный администратор.будет отказываться делать.
Вероятно, поэтому ваша первая попытка с командой mysql
, напрямую обращающейся к удаленному хосту, не будет работать.Сервер базы данных MySQL удаленного хоста не прослушивает и не принимает удаленные подключения, или, по крайней мере, не из широкого Интернета.
Использование ssh
позволяет безопасно передавать данные дампа, имея сервер MySQL удаленного хоста.иметь дело только с локальным подключением из команды mysql
.