Comment utiliser MySQL dump à partir d'une machine distante

Comment puis-je sauvegarder une base de données mysql qui s'exécute sur un serveur distant, j'ai besoin de stocker le fichier de sauvegarde dans le pc local.

61
demandé sur Richard Garside 2011-12-09 14:24:19

7 réponses

Essayer avec Mysqldump

#mysqldump --host=the.remotedatabase.com -u yourusername -p yourdatabasename > /User/backups/adump.sql
70
répondu CloudyMarble 2011-12-09 10:32:48

Avez-vous accès à SSH?

Vous pouvez utiliser cette commande dans shell pour sauvegarder une base de données entière:

mysqldump -u [username] -p[password] [databasename] > [filename.sql]

Il s'agit en fait d'une commande suivie de l'opérateur >, qui dit: "Prenez la sortie de la commande précédente et stockez-la dans ce fichier."

Remarque: L'absence d'espace entre -p et le mot de passe mysql n'est pas une faute de frappe. Cependant, si vous laissez l'indicateur -p présent, mais que le mot de passe réel est vide, vous serez invité à entrer votre mot de passe. Parfois, c'est recommandé de garder les mots de passe hors de votre historique bash.

48
répondu Ian Jamieson 2015-03-12 16:27:38

Personne ne mentionne quoi que ce soit à propos de l'option --single-transaction. Les utilisateurs doivent l'utiliser par défaut pour les tables InnoDB afin d'assurer la cohérence des données. Dans ce cas:

mysqldump --single-transaction -h [remoteserver.com] -u [username] -p [password] [yourdatabase] > [dump_file.sql]

Cela garantit que le vidage est exécuté dans une seule transaction isolée des autres, empêchant la sauvegarde d'une transaction partielle.

Par exemple, considérez que vous avez un serveur de jeu où les gens peuvent acheter des engrenages avec leurs crédits de Compte. Il y a essentiellement 2 opérations contre le base de données:

  1. Déduire le montant de leurs crédits
  2. Ajouter l'équipement à leur arsenal

Maintenant, si le vidage se produit entre ces opérations, la prochaine fois que vous restaurez la sauvegarde entraînera la perte de l'élément acheté par l'utilisateur, car la deuxième opération n'est pas vidée dans le fichier de vidage SQL.

Bien que ce soit juste une option , Il n'y a pas beaucoup de raison pour laquelle vous n'utilisez pas cette option avec mysqldump.

34
répondu datasn.io 2014-02-16 05:36:36

Ce sujet apparaît sur la première page de mon résultat google, alors voici un petit conseil utile pour les nouveaux arrivants.

Vous pouvez également vider le sql et le gzip en une ligne:

mysqldump -u [username] -p[password] [database_name] | gzip > [filename.sql.gz]
19
répondu Unnawut 2014-05-03 23:37:08
mysqldump -h [domain name/ip] -u [username] -p[password] [databasename] > [filename.sql]
2
répondu Artjom B. 2015-06-16 08:28:57

Essayé toutes les combinaisons ici, mais cela a fonctionné pour moi:

mysqldump -u root -p --default-character-set=utf8mb4 [DATABASE TO BE COPIED NAME] > [NEW DATABASE NAME]
0
répondu jsibs 2018-08-02 20:18:13

Vous pouvez choisir une autre manière:

mysql -u [username] [databasename]

" Et choisissez votre fichier sql comme :

source mydumpdatabase.sql
-3
répondu Nico 2015-09-25 14:42:36