Serveurs dédiés - Export/import de bases mysql d'un serveur distant à un serveur local
... / Export/import de bases my...
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Frage

Export/import de bases mysql d'un serveur distant à un serveur local

Von
PragmaTICEA
Erstellungsdatum 2023-03-26 15:36:58 (edited on 2024-09-04 14:16:46) in Serveurs dédiés

**Comment exporter des bases mysql d'un serveur distant à un serveur local ?**
A priori l'outil mydumper/myloader serait une bonne piste.
J'essaye de le paramétrer dans un fichier bash mais rencontre quelques soucis...
J'arrive à le faire fonctionner en local mais pas en distant via une connexion SSH.
J'utilise pour l'export :
USERNAME="user_mysql"
PASSWORD="mot_de_passe_user_mysql"
DATABASE_TO_DUMP="test"
ssh -p2222 USERNAME@MYSERVER.COM 'mydumper -u $USERNAME -p $PASSWORD -B $DATABASE_TO_DUMP -o "/home/sauvegarde_mysql"'
mais j'ai un souci avec mon PASSWORD qui a des caractères spéciaux. J'ai essayé de l'encadrer avec des guillemets et même de les échapper \" mais sans succès...

Pour rapatrier l'export sur le serveur local je tente :
myloader -h 127.0.0.1 -u $USERNAME -p $PASSWORD -d "ssh -p2222 SERNAME@MYSERVER.COM:/home/sauvegarde_mysql"'
mais ne marche pas...

Sinon, je tente avec fichier de configuration test.txt
mydumper --defaults-file test.txt pas d'erreur mais rien n'est fait ;)

Fichier text.txt :
[mydumper]
host = MYSERVER
port = 2222
user = USERNAME
password = PASSWORD
database = DATABASE_TO_DUMP

[myloader]
host = 127.0.0.1
user = USERNAME
password = PASSWORD
database = DATABASE_DUMPED

Il ne doit pas me manquer grand chose mais je bloque...

Fred


7 Antworten ( Latest reply on 2023-03-28 07:54:44 Von
Sich
)

Bonjour @PragmaTICEA

S'agit-il d'un hébergement mutualisé ?

Non non @Gaston_Phone un dédié.
Fred

Est il possible de modifier la configuration du serveur distant ?
Comme changer l'ip sur laquelle se bind mysql et la configuration du parefeu.

Si oui, bind mysql sur 0.0.0.0 sur le serveur distant.
Ouvrir le port 3306 juste pour l'ip du serveur qui doit s'y connecter.
Créer un user autoriser à se connecter à distance.

Executer la commande mysqldump avec le param --host= pour se connecter au serveur distant.

Puis importer localement le dump ainsi généré.

Si pas possible de toucher à la config mysql et/ou au parefeu, exécuter des commandes à distance via ssh.

Du genre ssh user@remote 'sudo mysqldump xx > /tmp/xx.sql'
Puis récupérer ce dump via scp scp user@remote:/tmp/xx.sql /tmp/
Importer ce dump localement via la commande habituelle.

Bonjour,

Un simple script pourrait faire l'affaire.

Depuis ton serveur local, il faut que tu puisses
- te connecter en ssh sur le serveur distant
- lancer une commande de dump ou un autre script local qui va exécuter ton dump
- rapatrier ton dump sur le serveur local via rsync par exemple
- injecter la bdd dans une base de données locale

Tu peux aussi faire un dump distant mais ca veut dire ouvrir le service mysql sur l'ip public et donc potentiellement ouvrir un accès interdit.
Mais ca peut se faire avec un firewall et un grant access dédié à ton dump.

Il faut juste que tu utilises les commandes mysqldump, mysql et rsync à priori

Bon courage
Captainadmin

Merci pour vos réponses.
Une solution est effectivement le combo mysqldump - mysql - rsync.
Après, j'ai découvert mydumper/myloader et pensais qu'il serait plus simple de l'utiliser et ne pas avoir à réinventer le fil à couper le beurre, ce type d'import/export distant de BDD devant être un grand classique de l'admin ;)
Malheureusement la doc de cet outil est un peu succincte.
L'idée est bien depuis mon serveur local :
- de me connecter en ssh sur le serveur distant et de lancer mydumper (un mysqldump optimisé)
ssh -p2222 USERNAME@MYSERVER.COM 'mydumper -u $USERNAME -p $PASSWORD -B $DATABASE_TO_DUMP -o "/home/sauvegarde_mysql"'
mais ce pb de caractères spéciaux dans le mot de passe me bloquer.
- de lancer myloader pour récupérer et injecter le dump distant.
myloader -h 127.0.0.1 -u $USERNAME -p $PASSWORD -d "ssh -p2222 SERNAME@MYSERVER.COM:/home/sauvegarde_mysql"'
Cela doit fonctionner mais je galère juste avec les commandes ssh que je dois mal employer et des variables mal échappées...
J'avais eu espoir avec le fichier de configuration mais pas mieux (cf mon premier mail)...
Je vais bien trouver quelqu'un qui utilise mydumper/myloader pour ce type de manip ;)
Je cherche....
Fred


mais ce pb de caractères spéciaux dans le mot de passe me bloquer.


Bonsoir @PragmaTICEA

N'y aurait-il pas un problème avec les caractères accentués et autres caractères exotiques qui ont des codages différentes en Windows, Unix, Dos etc. ?


mais ce pb de caractères spéciaux dans le mot de passe me bloquer.


Et changer le pass pour un alphanum classique ?