cómo mysqldump db remoto desde la máquina local

Resuelto Mauritz Hansen asked hace 14 años • 4 respuestas

Necesito hacer un mysqldump de una base de datos en un servidor remoto, pero el servidor no tiene mysqldump instalado. Me gustaría usar mysqldump en mi máquina para conectarme a la base de datos remota y realizar el volcado en mi máquina.

Intenté crear un túnel ssh y luego hacer el volcado, pero esto no parece funcionar. Lo intenté:

ssh -f -L3310:remote.server:3306 user@remote.server -N

El túnel se crea con éxito. Si lo hago

telnet localhost 3310

Recibo alguna propaganda que muestra la versión correcta de MySQL del servidor. Sin embargo, hacer lo siguiente parece intentar conectarse localmente

mysqldump -P 3310 -h localhost -u mysql_user -p database_name table_name
Mauritz Hansen avatar Jun 07 '10 20:06 Mauritz Hansen
Aceptado

Como todavía no lo he visto en serverfault, y la respuesta es bastante simple:

Cambiar:

ssh -f -L3310:remote.server:3306 user@remote.server -N

A:

ssh -f -L3310:localhost:3306 user@remote.server -N

Y cambio:

mysqldump -P 3310 -h localhost -u mysql_user -p database_name table_name

A:

mysqldump -P 3310 -h 127.0.0.1 -u mysql_user -p database_name table_name

(no use localhost, es una de esas tonterías de 'significado especial' que probablemente se conecta por socket en lugar de por puerto)

editar : bueno, para dar más detalles: si el host está configurado en , se asume localhostuna opción configurada (o predeterminada) . --socketConsulte el manual para saber qué archivos de opciones se buscan/utilizan. En Windows, puede ser una canalización con nombre.

Wrikken avatar Jun 07 '2010 15:06 Wrikken

Se puede invocar mysqldump localmente contra un servidor remoto.

Ejemplo que funcionó para mí:

mysqldump -h hostname-of-the-server -u mysql_user -p database_name > file.sql

Seguí la documentación de mysqldump sobre opciones de conexión.

Ondrej Burkert avatar Feb 15 '2018 15:02 Ondrej Burkert