2008-10-29 20 views

Respuesta

23

Usted no ha dicho lo que el acceso a la red que tiene al servidor remoto.

Suponiendo que tiene acceso SSH al servidor remoto, puede canalizar los resultados de un mysqldump remoto al comando mysql. Acabo de probar esto, y funciona bien:

ssh remote.com "mysqldump remotedb" | mysql localdb 

pongo cosas por el estilo de usuario, contraseña, host en .my.cnf así que no estoy constantemente escribiéndolos - molesto y malo para la seguridad en los sistemas multiusuario, que están poniendo contraseñas en texto claro en tu bash_history! Pero se puede agregar fácilmente las cosas -u -p -h de vuelta en en ambos extremos si lo necesita:

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

Por último, se puede canalizar a través gzip para comprimir los datos a través de la red:

ssh remote.com "mysqldump remotedb | gzip" | gzip -d | mysql localdb 
+0

Esto me ayudó mucho cuando estaba migrando servidores. Espero que el solicitante pueda seleccionar esto como la respuesta a la pregunta. – Nikko

+0

¿Qué pasa cuando el archivo SQL ya existe? –

+2

¿Qué sucede si no tengo acceso ssh pero puedo conectarme con el servidor mysql distante a través de mi servidor local "mysql --host = midominio.com --user = usuario --pass = pass? Cómo recupero el * .sql archivo que necesito volcar? –

0

que haría uso de wget a cualquiera de descargarlo en un archivo o una tubería en.

3

sólo pensé Añadiría esto ya que tenía muy poco espacio en mi VM local, pero si el archivo .sql ya existe en el servidor remoto, podría hacerlo;

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