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?

¿Fue útil?

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 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top