mysql importa sql a través de cli desde un servidor remoto
-
05-07-2019 - |
Pregunta
sé cómo importar un archivo sql a través de cli:
mysql -u USER -p DBNAME < dump.sql
pero eso es si el archivo dump.sql es local. ¿Cómo puedo usar un archivo en un servidor remoto?
Solución
No dijo qué acceso de red 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 como usuario, contraseña, host en .my.cnf
, por lo que no los escribo constantemente: molesto y malo para la seguridad en los sistemas multiusuario. tu bash_historia! Pero puede agregar fácilmente las cosas -u -p -h
nuevamente en ambos extremos si lo necesita:
ssh remote.com "mysqldump -u remoteuser -p'remotepass' remotedb" | mysql -u localuser -p'localpass' localdb
Finalmente, puede pasar por gzip
para comprimir los datos a través de la red:
ssh remote.com "mysqldump remotedb | gzip" | gzip -d | mysql localdb
Otros consejos
Pensé en agregar algo a esto, ya que el espacio en mi máquina virtual local era muy bajo, pero si el archivo .sql ya existe en el servidor remoto, podrías hacerlo;
ssh <ip-address> "cat /path/to/db.sql" | mysql -u <user> -p<password> <dbname>
Usaría wget para descargarlo a un archivo o canalizarlo .