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

Administration MySQL Discussion :

Sauvegarde de bd avec php


Sujet :

Administration MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 94
    Points : 47
    Points
    47
    Par défaut Sauvegarde de bd avec php
    Bonjour,
    Pour un site, je dois proposer une sauvegarde de la bd dans la partie admin du site, car il est difficile d'envoyer les utilisateurs sur phpmyadmin. En cherchant sur internet,je suis arrivé à ce script php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $host = 'lhost';
    $username = 'utilisateur';
    $psw = 'mot_de_passe';
    $db = 'nom_database';
    $username =escapeshellcmd($username);
    $psw =escapeshellcmd($psw);
    $host =escapeshellcmd($host);
    $db =escapeshellcmd($db);
    echo 'sauvegarde db '.$db.'<br>';
    $fichier="chemin_repertoire/dump_".$db."_".date("d-m-Y-H-i-s").".sql";
    $command = "mysqldump -u$username -p$psw -h$host $db > $fichier";
    system($command, $result);
    echo $result;
    J'obtiens bien un fichier de sauvegarde qui comprend pour chaque table drop, create puis insert into comme lorsque je fais une sauvegarde par phpmyadmin, mais insert into ne comporte pas les entêtes de colonnes
    INSERT INTO `articles` VALUES (7,3,'','',''
    au lieu de
    INSERT INTO `articles` (`id_article`, `id_rubrique`, `surtitre`...) VALUES(7,3,'','',''
    et seulement un nombre limité de valeurs à insérer (1 enregistrement et une partie du second).
    Grave pour faire une restauration.
    Où est l'erreur ?
    Merci

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    ça se paramètre dans le formulaire de phpmyadmin qui crée le fichier de sauvegarde de la bd...y a plus ou moins d'options selon la version...

    mais les entête c'est pas grave, c'est qu'il remplit les colonnes dans l'ordre d'apparition avec les valeurs de manière implicite...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 94
    Points : 47
    Points
    47
    Par défaut
    Bonjour,
    Merci de ta réponse, mais le script php a justement pour but d'éviter de passer par phpmysql qui fonctionne tout à fait normalement. phpmysql est totalement étranger à ce script et son paramétrage ne peut pas avoir d'incidence.

  4. #4
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    si tu es sur un dédié tu devrais mettre en place un système de réplication qui existe de base dans mysql...


    sinon comme je te le disais préciser les colonnes où tu insères ne sert à rien dans un dump (à part pour la relecture par un humain) ou si tu as à n'insérer que certaines valeurs ou si c'est fait en ne respectant pas l'ordre par défaut des colonnes...

    sinon il insert juste les valeurs dans l'ordre des colonnes par défaut donc mysql ne le précise pas... en plus ça fait gagner de la place à chaque apparition d'insert...

    faut lire la doc, tu devrais rajouter:
    • -c ou --complete-insert si tu veux voir apparaitre les colonnes (même si comme je te l'ai dit en pratique c'est inutile)
    • -e ou --extended-insert pour engendrer des inserts multiples par commande, ce qui va accélérer l'insertion


    qu'est ce que tu appelles incomplet montre un exemple des lignes originale et de leur équivalent dans la sauvegarde?

    s'il y a une erreur il s'arrête ça peut être du à ça... regarde les log pour voir si ça te parle d'un problème
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 94
    Points : 47
    Points
    47
    Par défaut
    Je crois bien que j'ai posé cette question à tord. Ce matin, je retrouve mon fichier de sauvegarde complet. Etait-ce la fatigue d'hier soir ? Je suis pourtant certain de n'avoir pas rêvé ! Etait-ce un temps de réaction du serveur ? Mais ce temps me semble bien long ! Et en y ajoutant le paramètre -c ou -e, je retrouve bien les entêtes de colonnes.
    Je m'excuse donc de cette question qui n'en était pas une.

    Le système de réplication dont tu parles est intéressant car je suis Je suis sur un serveur dédié. J'y ai accès par cpanel et par VHM. Mais là, je n'ose pas toucher car je n'y connais rien.

    Merci

  6. #6
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    ça revient à avoir 2 serveur mysql, un maitre et un esclave et du coup c'est surtout utile si tu as 2 dédiés car si le dédié crash ta sauvegarde dessus serait perdue...

    de la même manière que là tu dois transférer régulièrement tes sauvegardes ailleurs sinon tu ne seras pas plus avancé...

    oublie pas si c'est bon pour toi
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 94
    Points : 47
    Points
    47
    Par défaut
    Oui, c'est bon pour moi et je te remercie.
    A plus, surement !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Identity Map et sauvegarde de contexte avec PHP
    Par Benjamin Delespierre dans le forum Langages serveur
    Réponses: 0
    Dernier message: 05/11/2010, 23h39
  2. Travailler avec PHP / Apache / MySQL
    Par R3iTt0R dans le forum Linux
    Réponses: 22
    Dernier message: 24/06/2004, 11h03
  3. [débutant] choix de postgre avec php / migration
    Par bilbon.S dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 23/03/2004, 14h05
  4. Création d'utilisateur sous PostgreSQL 7.3.2 avec PHP
    Par duongkhang dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 06/06/2003, 13h10

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