web-dev-qa-db-fra.com

mysqldump de l'hôte distant

Est-il possible de vider une base de données d'un hôte distant via une connexion SSH et d'avoir le fichier de sauvegarde sur mon ordinateur local.

Si oui, comment cela peut-il être réalisé?

Je suppose que ce sera une combinaison de la sortie de tuyauterie du ssh au vidage ou vice versa, mais je ne peux pas le comprendre.

31
Marty Wallace

Cela déchargerait, compresserait et diffuserait sur ssh dans votre fichier local

ssh -l user remoteserver "mysqldump -mysqldumpoptions database | gzip -3 -c" > /localpath/localfile.sql.gz 
64
Michel Feldheim

À partir de la solution @ MichelFeldheim, j'utiliserais:

$ ssh user@Host "mysqldump -u user -p database | gzip -c" | gunzip > db.sql
16
Pierre de LESPINAY

ssh -f [email protected] -L 3306:server.com:3306 -N

puis:

mysqldump -hlocalhost > backup.sql

en supposant que vous n'avez pas non plus mysql fonctionnant localement. Si vous le faites, vous pouvez régler le port sur autre chose.

3
Michael Irey

J'ai créé un script pour faciliter l'automatisation des commandes mysqldump sur des hôtes distants en utilisant la réponse fournie par Michel Feldheim comme point de départ:

mysqldump-remote

Le script vous permet d'extraire un cliché de base de données à partir d'un hôte distant avec ou sans SSH et éventuellement à l'aide d'un fichier .env contenant des variables d'environnement.

Je prévois d'utiliser le script pour les sauvegardes automatisées de bases de données. N'hésitez pas à créer des problèmes / contribuer - espérons que cela aidera également les autres!

1
Logan