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 :

Créer d'autres repertoires (datadir) pour mysql


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 139
    Par défaut Créer d'autres repertoires (datadir) pour mysql
    Bonjour,

    afin de gérer plusieurs projets à la fois sur mon poste de développement, j'aimerais pouvoir switcher facilement d'une base à une autre avec MySQL (sous Ubuntu 9.10).

    Par défaut mysql utilise le repertoire /var/lib/mysql

    Je voudrais avoir par exemple
    /var/lib/projet1
    /var/lib/projet2
    /var/lib/projet3

    et modifier le fichier /etc/mysqml/my.cnf pour que le datadir pointe sur le projet souhaité.

    Cependant le simple fait de changer de nom /var/lib/mysql en /var/lib/projet1 et modifier le fichier /etc/mysql/my.cnf suffit pour que le serveur ne démarre pas avec un laconique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    * Starting MySQL database server mysqld                                                            [fail]
    Créer d'autres répertoires, les attribuer à mysql:mysql et modifier le fichier my.cnf revient au même.

    Quelqu'un voit de quoi ça peut venir ?

    Merci !

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    MySQL crée autant de sous répertoires dans /var/lib/mysql qu'il y a de bases de données.

    Si tu as une base par projet, la structure de ces bases seront donc séparées.

    Si tu utilises le moteur MyISAM pour tes tables, les données vont aussi se trouver dans les sous-répertoires.

    Par contre, si tu utilises InnoDB, les données seront dans /var/lib/mysql/ibdata1

    Après je ne sais pas s'il est possible de définir un espace de stockage différent lors de la création de la base. A chercher dans la doc MySQL.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    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 291
    Par défaut
    Pour switcher d'une base à l'autre, tu utilises USE ou un de ses équivalents API (par exemple mysql_select_db() en PHP). Le dossier où les données sont enregistrées relève de la pure cuisine interne de MySQL.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 139
    Par défaut
    Merci pour vos réponses. Ca ne m'arrange pas cependant ...
    Du coup je ne vois pas comment avoir plusieurs projets en parallèle, pouvant utiliser des noms de base commun sans se téléscoper. A part préfixer les noms de base par le nom du projet, mais ça me fait changer le code partout, sur tous les projets ...

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    En principe, à projet différent, base de données différente, nom de BDD différente !

    Et le nom de la base dans les programmes du projet, il n'est pas dans un fichier de configuration ? Donc en 1 seul exemplaire par projet ?

    Tu as des exemples de noms de projets et le nom de leur BDD ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 139
    Par défaut
    En gros j'ai développé une ossature qui gère des authentifications, des droits utilisateurs et quelques trucs "de base". Dans cette ossature, j'ai prévu un système de modules pré-développés que je peux insérer dedans : un module client, un module calendrier etc.
    Chaque module est une base (j'ai développé ça comme ça pour éviter d'avoir rapidement plein de tables au même endroit, de devoir préfixer les tables pour les reconnaitre etc.).

    Quand un client à un besoin particulier, on déploie la structure avec les modules qui vont bien, que je modifie selon ses besoins propres (ex : un calendrier qui s'interface avec ceci pour donner un planning, avec cela pour donner un agenda etc.)
    Ce qui fait que les structures sont globalement les mêmes, certaines ont des champs en plus, d'autres en moins etc.

    Quand je dois reprendre un projet déployé, je prends le code source d'un coté, je vide ma BDD et importe manuellement les bases/tables du client de l'autre. C'est assez long, et assez fastidieux.
    Autant gérer les sources php des projets, ça pose pas de problèmes, autant la BDD, je vois pas trop. Je pensais copier les données dans un autre repertoire que lirait Mysql (à travers le my.cnf) pour que rapidement je puisse switcher de contenu ...

    Ceci dit, le nom du projet est effectivement enregistré dans un fichier de conf, mais je n'ai pas pensé préfixer les noms des bases par le nom du projet dans les classes php / construction bases SQL.

    Actuellement, c'est
    PROJET1 bases CALENDRIER CLIENTS etc.

    il faudrait que je fasse un truc du genre
    PROJET1 bases PROJET1_CALENDRIER PROJET1_CLIENTS etc.

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/08/2016, 18h56
  2. Créer API en VB.net pour autres programmes
    Par Zenar dans le forum VB.NET
    Réponses: 4
    Dernier message: 29/08/2007, 02h22
  3. [VBA-E] pb pour copier une plage vers un autre repertoire
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/05/2007, 15h23
  4. créer une interface utilisateur console pour requetes sur mysql
    Par begonia dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 23/03/2007, 15h16
  5. Créer d'autres boutons pour MSGBOX ?
    Par vciofolo dans le forum Access
    Réponses: 3
    Dernier message: 30/09/2005, 15h38

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