Export de base donnée

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2006, 10:32

Bonjour, voila j'utilise cette ligne de commandes pour faire un backup de ma base de donnée.

system("mysqldump --h=localhost --u=root dit > daaa.sql");

mais il cree juste le fichier et met rien de dans, je trouve pas l'erreur pourriez vous m'aideR?

Merci beaucoup

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 mai 2006, 10:47

A priori je dirais :
--user=user_name OU -u user_name
--host=host_name OU -h host_name

Je ne suis pas convaincu du résultat d'un mélange des deux...

Pour plus d'infos :
http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2006, 11:58

erreur de frappe :


voici la page backup.php
<?php
      // Page faisant appel aux sessions
    session_start();

    // Vérification de l'autorisation
    if (!$_SESSION["membre"]) {
       // Si l'utilisateur n'est pas autorisé il est reconduit
       // sur le formulaire d'identification
       header("Location: sectionmembre_acces.html");
       die();
    }   

   include("connect.php");
     include "css.php"; 
   

echo "Votre base est en cours de sauvegarde.......\n<br>";
//if(system("mysqldump --host=localhost --user=dit --passacura -rfichier dit > ntica.sql"))
if(system("mysqldump -h localhost -u dit -p*** dit > base_dit.txt"))
{
echo"plouf";
}
echo "OK <br>";
echo "C'est fini.";
?>

et y m'affiche pas le PLOUF donc y passe pas dans le if ...

Mammouth du PHP | 1353 Messages

04 mai 2006, 12:04

if(system(sprintf('mysqldump -h localhost -u dit -p*** dit > base_dit.txt'))) 
Et comme ca ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 mai 2006, 12:05

La fonction system() retourne la dernière ligne de sortie de la commande, mais comme tout est enregistré dans un fichier, je ne suis pas certain qu'il t'affiche quelque chose... une chaine vide serait alors également interpretée comme fausse...

Question bête déjà, quand tu exécutes la commande directement en ligne de commande, est ce que cela fonctionne comme tu le souhaites ?

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2006, 12:05

non plus ... :oops:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

04 mai 2006, 12:06

Salut,

Avec une petite recherche tu aurais certainement déjà trouvé la réponse :wink:

http://www.phpfrance.com/forums/voir_su ... qldump.php

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2006, 12:19

j'ai essaye avec ca : if(system("mysqldump --host localhost --user dit --password acura dit > testament.sql"));
{
echo"plouf";
}

Mais j'ai rien, il affiche le plouf maintenant mais j'ai fait une recherche sur le document et rien trouvée ...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 mai 2006, 12:26

Commence déjà peut être par faire marcher ton code en ligne de commande... c'est quoi ce "dit" ? :

mysqldump --host localhost --user dit --password acura dit > testament.sql

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2006, 12:39

DIT : c'est le nom de ma base de donnée

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2006, 12:49

en ligne de commande? a partir d'ou? je suis pas un pro :$

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 mai 2006, 12:56

faut pas lui préciser un --databases devant ?

en ligne de commande, c'est à dire directement depuis ton shell, comme ça il te dira s'il y a des erreurs... commence juste par exécuter le mysqldump et ajoute les arguments au fur et à mesure pour voir ce qui peut poser problème...

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2006, 13:01

alors voici ce que j'ai mit :
mysqldump -h localhost -u dit -p**** dit > testmabase.sql

et ca marche parfaitement

Mais dans mon fichier backup.php ca marche pas ...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 mai 2006, 14:07

Il n'y aurait pas un problème au niveau des droits si toi tu peux l'exécuter correctement mais pas php ? (sans parler du if pour l'instant, juste de l'exécution de la commande et la génération du fichier)

Tu peux eventuellement aussi essayer avec exec() au lieu de system() voir si cela change quelque chose..

Eléphant du PHP | 120 Messages

24 mai 2006, 15:56

j'ai le meme pb avec le fichier sql généré, en revanche je souhaiterai taper la requete en ligne de cmd mais je connais meme pas les cmd elles meme pour se connecter, pourriez vous me les indiquer svp.
quant au script php, lui il contient ceci :
system("mysqldump --host localhost --user root --password  --tables test > tes.sql");
quel serait le pb dans ce cas ?
merci de votre aide