cómo mysqldump db remoto desde la máquina local
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
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 localhost
una opción configurada (o predeterminada) . --socket
Consulte el manual para saber qué archivos de opciones se buscan/utilizan. En Windows, puede ser una canalización con nombre.
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.