IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Sauvegarde et restauration de tables mysql avec préfix


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Sauvegarde et restauration de tables mysql avec préfix
    Bonjour à tous,

    je vous avoue humblement que mes connaissances en BDD datent un peu et que je galère pour faire ce que je veux.

    J'ai une base mysql commune à plusieurs sites joomla qui ont chacun un préfixe correspondant au nom de leur répertoire sous mon www.

    Je souhaiterais effectuer un script php que j'appelerais depuis un cron OVH pour sauvegarder quotidiennement chacune des sous parties de la base regroupant les tables avec un préfixe donné.

    J'ai essayé MYSQLDump mais je galère car il faut lui donner une liste de table.

    J'ai pensé faire une requéte en php pour lister toutes les tables dans une string mais c'est pas évident parce que j'ai vu qu'il y a plein de fonctions php deprecated et qu'il faut visiblement utiliser mysqli sans parler du problème de simple quote et double quote.

    J'ai déjà fait le code suivant pour sauvegarder toute ma base et je sollicite votre aide pour l'améliorer et me permettre de filtrer les tables avec un certain préfixe par exemple "00000_":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <?PHP 
       error_reporting(E_ALL);   // Activer le rapport d'erreurs PHP 
     
       $db_charset = "utf8"; /* mettre utf8 ou latin1 */ 
     
       $db_server         = "******.mysql.db"; 
       $db_name           = "******"; 
       $db_username       = "******"; 
       $db_password       = "******"; 
     
       $cmd_mysql = "mysqldump"; 
     
       $today = date("m-d-y");
     
       $Prefixe_tables_a_sauvegarder = "00000_"; 
     
       $archive_GZIP      = "sauve_base_Client_".$Prefixe_tables_a_sauvegarder.$today.".gz"; 
     
       echo " Sauvegarde de la base <font color=red><b>$db_name</b></font> par <b>mysqldump</b> dans le fichier <b>$archive_GZIP</b> <br> \n"; 
       $commande = $cmd_mysql." --host=$db_server --user=$db_username --password=$db_password -C -Q -e --default-character-set=$db_charset  $db_name  | gzip -c > $archive_GZIP "; 
       $CR_exec = system($commande); 
     
     
    ?>
    Enfin de voudrais faire évoluer ce code pour qu'il liste tous les dossiers de la racine www de mon hébergement et que pour chaque nom listé, il effectue une sauvegarde avec un préfixe correspondant au nom du dossier. Ceci me permettrait d'avoir un cron de sauvegarde évolutif en cas d'ajout de nouveau site joomla.

    Si vous avez également la procédure pour restaurer la partie de la base à partir de l'archive, je suis preneur aussi

    Merci par avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux recolter ta liste de table par une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $pdo = new PDO("mysql:host=$db_server;dbname=$db_name", $dn_username, $db_password);
    $pdo->query("SELECT TABLE_NAME FROM information_schema WHERE TABLE_NAME LIKE '$Prefixe_tables_a_sauvegarder%'");
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
       $tables .= ' ' . $row['TABLE_NAME']
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [MySQL] Mettre à jour une table mysql avec un fichier xml ou csv
    Par pasbonte dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/02/2009, 08h56
  2. [MySQL] Mettre à jour table MySQL avec PHP
    Par beegees dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 16/10/2008, 13h40
  3. [MySQL] Restaurer un dump MySQL avec PHP facilement
    Par arnaudperfect dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/03/2008, 10h00
  4. Réponses: 2
    Dernier message: 09/11/2006, 09h59
  5. Es-ce possible de créer une table MySQL avec MS Excel
    Par pierrot10 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 16/10/2005, 06h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo