Back up et restore Mysql

Bertrand_123
Invité n'ayant pas de compte PHPfrance

29 sept. 2006, 15:52

Bonjour,

Pardonnez cette question élémentaire d'un novice. je souhaite tranférer une grosse bass mysql d'un hébergeur vers un autre. Il semblerait que ce soit mysqldump qu'il faille utiliser :
mysqldump -uuser -ppassword  -e -q -Q --add-drop-table nom-de-base  | gzip > nom-de-base.sql.gz
Pour sauvegarder et
zcat nom-de-base.sql.gz | mysql -uuser -ppassword nom-de-base
pour restaurer sur le nouveau serveur.


Mais poù doit on executer ces commandes ??? à la racine du site ? dals un répertoire PhpMyadmin ?

Merci de votre aide



Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

29 sept. 2006, 22:10

Ce sont des commandes shell. En PHP, il faut utiliser la commande exec()

Seul hic, c'est désactivé sur la plupart des hébergeurs mutualisés pour des raisons de sécurité. Si tu n'as pas un serveur dédié, il te faudra utiliser phpMyAdmin en coupant la base de données en plusieurs morceaux.

Invité
Invité n'ayant pas de compte PHPfrance

01 oct. 2006, 23:11

Salut ! et merci

J'ai continué à chercher...

en fait ma base se trouve sur serveur mutualisé (je faisais les transferts avec Mysql-Front) et je souhaite la transférer vers un serveur dédié.

J'ai installé PUTTY sur mon poste et j'ai établi une connexion en SSH avec le serveur dédié.

Mysqldump se trouve dans /usr/bin (j'ai utilisé la commande locate mysqldump)

Je dispose de mon fichier sql de sauvegarde. Et donc je pense que la procédure est de le transférer part FTP sur le serveur dédié puis de faire une restauration.

Mais je ne sais pas où poser ce fichier sql pour ensuite venir le cherher. Je tourne en rond depuis deux jours !!!

Grans merci de votre aide !

ViPHP
ViPHP | 1380 Messages

02 oct. 2006, 07:55

Tu le poses où tu veux dans un répertoire sur lequel l'utilisateur linux de ton dédié a les droits (par exemple /home/ton_uid/).

Si cet utilisateur linux peut utiliser la commande mysql il suffit de lui indiquer le chemin complet vers le fichier dump:

Code : Tout sélectionner

mysql -u mysql_user -p BaseDeDonnees < /home/ton_uid/fichier_dump.sql
Les tables de ta base seront stockées dans le répertoire défini dans le fichier de configuration my.ini (datadir= .... ).

En passant, il n'est pas très prudent de mettre le mot de passe mysql en clair dans ta ligne de commande comme tu l'as fait (-pmotdepasse) car cette commande est journalisée dans le fichier shell .bash_history. Alors, si tu peux l'éviter...
ripat

Invité
Invité n'ayant pas de compte PHPfrance

02 oct. 2006, 23:43

Merci de ta réponse.

En fait je n'arrive pas à touver de "lien" entre ce que je vois par le ftp sur le serveur dédié et les réprtoires où son suposées être les bases.

Je m'explique :

Si je me connecte en SSH avec putty je trouve ma base :
/var/lib/mysql/mabase

Si je me connecte sur le serveur avec plesk je trouve par exemple :

/var/www/vhosts/monsite.com/httpdocs/index.php


Comment attaindre par FTp le répertoire mysql où se trouve mabase ??

Grand merci

ViPHP
ViPHP | 1380 Messages

03 oct. 2006, 15:46

Si tu ne peux remonter dans l'arborescence par ftp c'est qu'il y a une limitation dans le fichier config du serveur ftp de ton dédié.

Soit tu fais sauter cette limitation, soit tu utilises un client ftp comme FileZilla qui permet d'établir directement des connexions ssh. Tu te baladeras alors dans toute l'arborescence.
ripat

Invité
Invité n'ayant pas de compte PHPfrance

04 oct. 2006, 10:26

Super !

Je vais essayer. Merci de ton aide.