comment mysqldump db distant de la machine locale

Je dois faire un mysqldump d’une firebase database sur un serveur distant, mais mysqldump n’est pas installé sur le serveur. Je voudrais utiliser le mysqldump sur ma machine pour me connecter à la firebase database distante et faire le vidage sur ma machine.

J’ai essayé de créer un tunnel SSH, puis d’effectuer le vidage, mais cela ne semble pas fonctionner. J’ai essayé:

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

Le tunnel est créé avec succès. Si je fais

 telnet localhost 3310 

Je reçois des blurb qui montre la bonne version de mysql du serveur. Cependant, faire ce qui suit semble essayer de se connecter localement

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

Comme je ne l’ai pas encore vu à serverfault, et la réponse est assez simple:

Changement:

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

À:

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

Et changez:

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

À:

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

(n’utilisez pas localhost, c’est une de ces absurdités de signification particulière qui se connecte probablement par socket plutôt que par port)

edit : bien, pour élaborer: si l’hôte est défini sur localhost , une option configurée (ou par défaut) --socket est supposée. Voir le manuel pour lequel les fichiers d’options sont recherchés / utilisés. Sous Windows, cela peut être un canal nommé.

Vous pouvez appeler mysqldump localement sur un serveur distant.

Exemple qui a fonctionné pour moi serait:

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

Je viens de suivre la documentation de mysqldump sur les options de connexion.