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 :

Importation base de données


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 315
    Par défaut Importation base de données
    WampServer
    Apache, PHP, MySQL on Windows

    Bonjour ,

    J'ai consulté les discussions concernant l'export/import des bases de données sur ce forum mais j'ai encore 1 question sans réponse:

    Comment faire une importation complète de toutes les bases sur un nouvel ordinateur

    MAIS EN CONSERVANT TOUTE LA STRUCUTURE DES UTILISATEURS ET DES PRIVILEGES ,

    Les deux machines sont équipées de la meme façon avec WAMPSERVER 2.0

    Il est difficilement concevable qu'il faille redéfinir manuellement tous les utilisateurs et tous les privilèges sur les bases lors d'une importation sur une nouvelle machine

    Je suis donc toujours preneur d'une solution à ce sujet ,si elle existe ....

    Merci d'avance de la réponse

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Tu peux par exemple faire un mysqldump de la base mysql.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 315
    Par défaut
    Bonjour Antoun, prenons 2 cas:

    1) je fais via mysqldump all databases un export/import de toutes les bases Mysql de wampserver (y compris mysql et information_schema) figurant sur mon ordinateur A vers mon ordinateur B.

    Les USERS et PRIVILEGES définis sur la machine A seront -il fidèlement reproduits sur la machine B ?

    2) Autre cas :

    Machine A : je fais via mysqldump un export de 5 bases de données pour lesquelles j'ai définis des USERS et PRIVILEGES. Je fais donc également un export des bases mysql et information-schema

    Machine B :import des 5 bases via mysqldump
    import des 2 bases mysql et information-schema

    Les utilisateurs et privileges importés n'existaient pas sur la machine B avant l'import

    Que va t-il se passer ? Les anciens utilisateurs et privilèges définis sur la machine B vont-ils être conservés soigneusement ? les nouveaux vont-ils être ajoutés convenablement ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    ça ne sert à rien de dumper information_schema, elle ne contient que des vues système en lecture seule.

    Par contre, mysql contient de vraies tables dont tu peux modifier les données... Le scénario précis serait donc plutôt :

    • tu dumpes tes cinq bases standard de A, et tu les re-crées sur B
    • tu dumpes mysql de A avec l'option -t (données seulement, pas de CREATE TABLE)
    • tu ré-injectes les données du dump de mysql dans la mysql de B ; tout ce qui existe déjà est préservé
    • tu fais un FLUSH PRIVILEGES, pour que MySQL recharge les nouveaux droits en mémoire


    A tester avec toutes les précautions possibles...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 315
    Par défaut
    Bonjour Antoun,
    D'abord merci pour la réponse qui au moins est claire et précise

    J'ai testé ton idée sur des bases sans importance. C'est OK MAIS attention, il y a un petit couac !

    Transposons l'affaire à la la base mysql.

    Il réinjecte bien les données en préservant les données existantes grace à l'option -t mais les deux bases mysql de chaque machine doivent être identiques car s'il rencontre une table différente sur la machine de destination, il arrête l'import ou il est arrivé
    Je vois donc 2 possibilites à cet histoire

    1) faire en sorte que la base mysql de destination possède au moins toutes les tables de la machine de départ. Si table manquante , créer seulement la structure (dumper la structure avec -d et réinjecter) et ensuite faire l'import de la base mysql avec l'option -t

    2) deuxième possibilité
    J'ai lu dans la FAQ ta définition de la base mysql

    Citation Envoyé par Antoun
    Un serveur MySQL comprend toujours deux bases de données système : information_schema, qui contient les vues système du catalogue (cf le tutoriel Le catalogue MySQL), et mysql, qui contient les comptes utilisateur et leurs privilèges. Les principales tables de cette base sont user (comptes, mot de passe et privilèges globaux), db (privilèges accordés pour une base de données entière), tables_priv (privilèges accordés table par table) et column_priv (privilèges accordés colonne par colonne). Il est possible d'administrer les utilisateurs en modifiant les données de la base mysql. Comme le contenu de cette base est intégralement chargé en mémoire au démarrage du serveur, il sera nécessaire de le recharger avec un FLUSH PRIVILEGES. A l'inverse, le FLUSH n'est pas nécessaire avec les ordres DCL (GRANT, REVOKE, etc.) qui impactent automatiquement la copie en mémoire vive de la base mysql.
    J'en déduis donc pour cette question de USERS et privilèges, il suffirait peut-être de dumper les tables user,db,tables_priv, column_priv avec l'option -t et réinjecter dans la base mysql de destination

    Voilà , dis-moi ce que tu en pense, MERCI

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    1) oui, c'est pour cela que j'ai bien mis en première étape l'import de tes bases normales sur B avant de s'occuper de mysql

    2) yep, avec éventuellement les tables host (qui n'est généralement pas utilisée, mais je ne sais pas ce qu'il en est chez toi), et procs_privqui contient les privilèges sur les routines (si tu en as). cf http://dev.mysql.com/doc/refman/5.1/...structure.html

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

Discussions similaires

  1. Echec d'importation base de données
    Par djulian dans le forum Administration
    Réponses: 9
    Dernier message: 17/09/2007, 04h46
  2. Réponses: 5
    Dernier message: 10/08/2007, 12h47
  3. importer base de donnée
    Par matt51 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/03/2007, 11h46
  4. Import base de données
    Par maxime17s dans le forum Installation
    Réponses: 5
    Dernier message: 17/12/2006, 21h37
  5. procédure pour exporter et importer bases de données
    Par mariogarcia dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 24/03/2006, 17h33

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