Вы не сказали, какой у вас сетевой доступ к удаленному серверу.
Если у вас есть 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