Backup et Restauration d'une BDD via PHP

Bonjour à toutes et tous,

voilà, comme le titre l'indique, je suis en train de travailler sur des scripts pour faire un backup puis une restauration d'une Base de Données.

J'utilise les scripts situés à cette adresse :
http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/using-php-to-backup-mysql-databases.aspx

Or il ne se passe rien sur mon serveur.

Voilà mon script, quelqu'un voit-il où ça cloche ?

<?php 
$dbhost = 'xxx'; 
$dbuser = 'xxx'; 
$dbpass = 'xxx'; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql'); 
$dbname = 'xxx'; 
mysql_select_db($dbname); 

$tableName  = 'test'; 
$backupFile = 'test.sql'; 
$query      = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName"; 
$result = mysql_query($query); 
?>  


Merci d'avance pour votre aide et votre temps.

Gregg

4 réponses

  1. Oui elle semble bien executée...

    J'ai même essayé de créer le fichier test.sql sur le serveur avec les permissions chmod 777 mais rien ne s'y inscrit !
    0
    1. Je viens d'essayer sur OVH et même problème donc je ne pense pas que cela vienne du serveur ou de la BDD ;-(
      0
    2. donne moi ta commande
      0
    3. Je ne comprends pas, la commande est dans mon message. Ainsi que le lien tutoriel.
      Voici ce que j'essaie de faire fonctionner :

      Below is an example of using SELECT INTO OUTFILE query for creating table backup :
      
      <?php
      include 'config.php';
      include 'opendb.php';
      
      $tableName  = 'mypet';
      $backupFile = 'backup/mypet.sql';
      $query      = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName";
      $result = mysql_query($query);
      
      include 'closedb.php';
      ?>
      
      To restore the backup you just need to run LOAD DATA INFILE query like this :
      
      <?php
      include 'config.php';
      include 'opendb.php';
      
      $tableName  = 'mypet';
      $backupFile = 'mypet.sql';
      $query      = "LOAD DATA INFILE 'backupFile' INTO TABLE $tableName";
      $result = mysql_query($query);
      
      include 'closedb.php';
      ?> 
      0
  2. affiche toi la commande, et essaie de la lancer a la main pour voir si elle est bien exécutée (sans le gzip en premier)
    0
    1. En fait la fonction Mysqldump présente sur le lien (et ci-dessous) me retourne un fichier gz vide. Au moins il y a création d'un fichier je suis d'accord mais il est vide. Est-ce que cela vient de mon serveur ou de ma base ? Je suis chez 1and1.

      $backupFile = $dbname . date("Y-m-d-H-i-s") . '.gz';
      $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile";
      system($command);


      de plus, j'aurai bien aimé utilisé les premiers codes car ils proposent de re-uploader le fichier pour restaurer la base...
      0
      1. Salut,

        Mysqldump ne te suffit pas ?
        0