Copier une base de données avec PHP

Invité
Invité n'ayant pas de compte PHPfrance

12 oct. 2007, 15:47

Merci pour le conseil Berzemus,

ça fait plus d'une semaine que je cherche une solution sur le net, et si j'avais trouvé une sur google je n'aurais pas posté dans un forum. Et puis c'est pour ça que les forums sont faits n'est ce pas ?

Merci quand même.

ViPHP
ViPHP | 5924 Messages

12 oct. 2007, 15:53

Tape "man mysqldump" sur google pour savoir comment utiliser le programme, et ensuite tu contruis la commande en fonction.

ViPHP
ViPHP | 4039 Messages

12 oct. 2007, 16:08

ou encore "php exec mysqldump".

Parfois le plus dur c'est de savoir ce qu'il faut chercher. Courage.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 17 Messages

12 oct. 2007, 16:37

Merci beaucoup pour votre aide. Effectivement avec ces mots-clés je trouve des solutions, je vais essayer si ça marche avec moi :D

Encore merci à tous

Eléphanteau du PHP | 17 Messages

14 oct. 2007, 00:27

Salut, eh oui c'est encore moi :D

J'ai testé ceci:

Code : Tout sélectionner

exec("mysqldump -h ".$ip_serveur." -u root --opt ".$nom_bdd." > copie_bdd.sql");
le fichier copie_bdd.sql se crée mais il est vide :shock:

D'où vient ce problème ?

ViPHP
ViPHP | 4039 Messages

14 oct. 2007, 13:21

toutes les variables sont bonnes ?

l'utilisateur root n'a pas de mot de passe ?
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 5924 Messages

14 oct. 2007, 15:54

Rajoute un 2>&1 dans ta commande pour avoir les éventuelles erreurs.

Eléphanteau du PHP | 17 Messages

15 oct. 2007, 10:04

bonjour à tous,

Berzemus > Oui, il n'y a pas encore de mot de passe, tout est laissé par défaut; donc d'après ce que j'ai lu je dois pas mettre le -p non ?

Sékiltoyai > J'ai rajouté 2>&1 dans la commande et j'ai eu ceci dans le ficher copie_bdd.sql :

'mysqldump' n'est pas reconnu en tant que commande interne
ou externe, un programme ex‚cutable ou un fichier de commandes.

Qu'est ce que je dois faire pour copier la bdd automatiquement ? en plus il ne me reste que quelques jours pour remettre mon travail :(

ViPHP
ViPHP | 4039 Messages

15 oct. 2007, 10:37

Voilà, un exemple qui marche (chez moi).

le truc c'est qu'il faut exécuter mysqdump depuis le répertoire bin de mysql (chez moi: c:\mysql\bin ):
exec("c:\mysql\bin\mysqldump --opt -h ".$ip_serveur." -u root ".$nom_bdd." > copie_bdd.sql");
Dis nous si ça va comme ça..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 443 Messages

15 oct. 2007, 11:02

[...] en plus il ne me reste que quelques jours pour remettre mon travail :(
Commence à faire des cartons, et à nettoyer ton bureau
:wink:

Eléphanteau du PHP | 17 Messages

15 oct. 2007, 11:05

ça marche très très très bien comme ça, merci beaucoup pour votre aide :D

ViPHP
ViPHP | 5924 Messages

15 oct. 2007, 13:20

Ouais c'est parce que tu tournes sur une plateforme Windows. Sur une plateforme UNIX, le programme mysqldump sera déjà dans le PATH (et de toute facon, le chemin que tu utilises sous windows ne sera pas valide), donc il faudra enlever le chemin et ne laisser que le nom du programme.