web-dev-qa-db-fra.com

Comment utiliser le dump MySQL depuis une machine distante

Comment puis-je sauvegarder une base de données mysql qui fonctionne sur un serveur distant, je dois stocker le fichier de sauvegarde dans le PC local.

64
Harsha

Essayez-le avec Mysqldump

#mysqldump --Host=the.remotedatabase.com -u yourusername -p yourdatabasename > /User/backups/adump.sql
70
CloudyMarble

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 par l’opérateur >, qui dit: "récupérez le résultat de la commande précédente et stockez-le dans ce fichier".

Note: Le manque 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 actuel est vide, vous serez invité à entrer votre mot de passe. Parfois, il est recommandé de garder les mots de passe en dehors de votre historique bash.

50
Ian Jamieson

Personne ne mentionne rien de l'option --single-transaction . Les utilisateurs devraient 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 transaction unique isolée des autres, empêchant ainsi la sauvegarde d'une transaction partielle. 

Par exemple, considérons 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 sur la base de données:

  1. Déduire le montant de leurs crédits
  2. Ajouter le matériel à leur arsenal

Désormais, si le vidage se produit entre ces opérations, la prochaine fois que vous restaurerez la sauvegarde, l'utilisateur perdrait l'élément acheté, car la deuxième opération ne serait pas vidée dans le fichier de vidage SQL.

Bien qu'il ne s'agisse que de option, il n'y a pas vraiment de raison pour laquelle vous n'utilisez pas cette option avec mysqldump.

35
datasn.io

Ce sujet apparaît sur la première page de mon résultat google. Voici donc un petit conseil utile pour les nouveaux venus.

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

mysqldump -u [username] -p[password] [database_name] | gzip > [filename.sql.gz]
20
Unnawut
mysqldump -h [domain name/ip] -u [username] -p[password] [databasename] > [filename.sql]
2
user3567805

J'ai 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
jsibs