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

Installation MySQL Discussion :

Spécifier le chemin pour enregistrer une base de données MySQL


Sujet :

Installation MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Spécifier le chemin pour enregistrer une base de données MySQL
    Salut tout le monde,

    Je réalise avec c# une application de gestion commerciale (Facturation, Stock…) et je souhaite créer une base de données (MySQL). J’ai installé EasyPHP-5.3.9 pour gérer la BDD avec PhpMyAdmin.

    Voilà mon problème, quand je crée la base de données, elle est enregistrée automatiquement suivant le chemin par défaut «C:\Program Files\EasyPHP-5.3.9\mysql\data»
    Comment peut-on changer ce chemin, pour enregistrer la BDD dans le répertoire de mon application, genre: «C:\monApplication\maBDD\» ?
    Comment y procéder ? Y a-t-il un fichier de configuration que je peux modifier ?

    Merci d’avance pour votre aide

  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
    Le chemin "datadir" est défini dans le fichier my.ini doit se trouver dans mysql/bin
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Salut Vincent,

    Citation Envoyé par sabotage Voir le message
    Le chemin "datadir" est défini dans le fichier my.ini doit se trouver dans mysql/bin
    Je l'ai modifié comme suit :
    #Path to the database root
    datadir="D:\ATLAS\Vasser\DataBank"

    Mais quand j'ouvre PhpMyAdmin, j’obtiens l'erreur suivante :

    MySQL a répondu: Documentation
    #2002 - Le serveur ne répond pas (ou l'interface de connexion vers le serveur MySQL local n'est pas correctement configurée)

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    C'est parce que les autres BDD, notamment la BDD mysql sont toujours dans l'autre chemin.

    Pourquoi veux-tu déplacer la BDD ? Tu vois que c'est une mauvaise idée !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Salut Philippe,

    Citation Envoyé par CinePhil Voir le message
    Pourquoi veux-tu déplacer la BDD ? Tu vois que c'est une mauvaise idée !
    Je développe encore mon application, et j'y travaille à la fois au bureau et à la maison, donc forcément les chemins ne sont pas identiques sur les deux PCs.

    Mais le plus important, c'est que à la fin quand je déploierai l'application, j'aimerais avoir un répertoire pour mon application qui contient aussi la BDD. Il me semble que c'est toujours comme ça quand on installe une application de gestion. Ou je me trompes là?

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Si tu n'utilises que le moteur MyISAM, c'est en effet possible de copier le sous-répertoire de la BDD et de le charger sur le serveur qui va l'exploiter mais utiliser seulement MyISAM, c'est se priver des contraintes de clés étrangères et c'est dommage !

    Si tu utilises InnoDB, ta méthode est impossible.

    Dans les deux cas, le meilleur moyen est de faire un dump de la BDD et de mettre le fichier de dump avec la sauvegarde de l'appli. Dans le déploiement, il suffit de prévoir un script qui recharge le fichier de dump sur le serveur.

    Le dump :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqldump -u user_mysql -pson_mot_de_passe nom_bdd > dump_nom_bdd_date.sql
    Le chargement du dump sur le serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -u user_mysql -pson_mot_de_passe nom_bdd < dump_nom_bdd_date.sql
    Il faudra probablement créer au préalable la BDD dans MySQL ainsi que l'utilisateur applicatif et lui donner les droits sur la BDD.

    Mais chez toi, laisse la BDD à sa place et fais des sauvegardes avec mysqldump.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Rebonjour Philippe,

    Citation Envoyé par CinePhil Voir le message
    mais utiliser seulement MyISAM, c'est se priver des contraintes de clés étrangères et c'est dommage !
    Si tu utilises InnoDB, ta méthode est impossible.
    J'ai toujours constaté que les logiciels de gestion ( comptabilité...etc.) installaient tours leurs fichiers dans un répertoire «C:\Program Files\uneApplicationX» contenant à la fois l’application et la BDD (souvent SQL Server) et donc j’imaginais faire la même chose...

    Mais là d’après ce que tu dis, je suis un peu surpris et déçu suis-je maintenant obligé pour réaliser cette structure de me priver des contraintes de clés étrangères ?

    Est-ce un problème lié à MySQL que les autres SGBD n’ont pas ?

    Si c’est le cas j’abandonne donc cette alternative et je laisse ma BDD là où elle est.

    Alors Philippe, c’est ton dernier mot : c’est ou le choix du répertoire ou le moteur InnoDB ?

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut

    Meilleure réponse : InnoDB
    En plus si tu travaille sur une version récente de MySQL, ce moteur n'a plus rien à envier au vieux MyISAM et offre tellement plus. Comme le dit CinePhil cela serait bien dommage.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Eh bien là je n’ai plus rien à dire, le verdict est tombé, j’opte donc pour le moteur InnoDB et laisse ma BDD à sa place.
    Mais je me demande encore, comment font les autres pour placer leur BDD là ou ils souhaitent, ont il pour cela dû sacrifier InnoDB ?? Mystère

    Un grand Merci à Un grand Merci à sabotage, CinePhil et rawsrc

  10. #10
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Il ne faut pas confondre la BDD telle qu'elle est implémentée dans le SGBD et un fichier de sauvegarde qu'on peut utiliser pour (re)créer la BDD dans le SGBD.
    Rien ne t'empêche de mettre le fichier de dump de la BDD dans le répertoire de ton application et de prévoir le petit programme qui créera la BDD lors de l'installation de l'appli.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Rien ne t'empêche de mettre le fichier de dump de la BDD dans le répertoire de ton application et de prévoir le petit programme qui créera la BDD lors de l'installation de l'appli.
    Je suis encore débutant et je suis un peu confus là

    Tu veux dire que :

    - Pendant le développement je communique avec la BDD qui est physiquement enregistrée dans «C:\Program Files\EasyPHP-5.3.9\mysql\data»

    - Et à l’installation, quand je déploierai l’application sur les PCs du réseau local de l’entreprise, je lance un script qui crée la BDD dans le répertoire de mon application dans un unique PC (qui sera le Serveur de BDD), et je pourrais supprimer la BDD dans le répertoire «C:\Program Files\EasyPHP-5.3.9\mysql\data».
    Et j’imagine que je peux carrément désinstaller EasyPHP : Enfin je veux dire en principe. Car je le garderai évidemment pour les travaux de maintenance.

    --> Résultat : à la fin j'aurais la BDD dans le répertoire de l'application, avec l'option d'avoir une copie dans le répertoire d'EasyPHP si nécessaire.

    Est-ce que je t’ai bien compris là ?

  12. #12
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Ce n'est pas du tout ça.

    Ta BDD est physiquement située dans le répertoire data de MySQL. Plus précisément, si tu utilises le moteur InnoDB, les données sont stockées dans les fichiers ibdata et le répertoire de la BDD ne contient que les fichiers permettant de recréer la BDD vide.

    C'est pour ça que sauvegarder le répertoire de la BDD n'est pas suffisant et qu'il faut utiliser mysqldump pour enregistrer la BDD sous fome d'un fichier SQL.

    En ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqldump -u nom_utilisateur_mysql -pson_mot_depasse nom_de_la_bdd > chemin/vers/fichier_de_dump.sql
    La commande ci dessus créera le fichier_dedump.sql que tu peux déplacer dans le répertoire de ton application pour distribuer celle-ci.

    Il y a d'autres paramètres à mysqldump, cherche dans la doc de MySQL.
    est ton ami !

    Pour créer la BDD complète avec ses données sur un autre serveur MySQL, tu utilises la commande inverse de la précédente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -u nom_utilisateur_mysql -pson_mot_depasse nom_de_la_bdd < chemin/vers/fichier_de_dump.sql
    Si tu crées un processus d'installation de ton application et de la BDD, tu peux y inclure cette commande pour créer la BDD associée à l'application.

    Et sur le nouveau serveur, tu retrouveras dans MySQL la BDD que tu avais créée sur ton poste. Tu verras sur le serveur un répertoire au nom de ta BDD dans le répertoire MySQL et les données seront dans les fichiers ibdata si tu utilises InnoDB.

    C'est plus clair ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    CinePhil

    Citation Envoyé par CinePhil Voir le message
    Ta BDD est physiquement située dans le répertoire data de MySQL. Plus précisément, si tu utilises le moteur InnoDB, les données sont stockées dans les fichiers ibdata
    Je commence à piger : Opter pour InnoDB implique que la BDD est enregistrée pour l’éternité dans le répertoire data de MySQL et va y rester. Okey, c’est pas la fin du monde.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqldump -u nom_utilisateur_mysql -pson_mot_depasse nom_de_la_bdd > chemin/vers/fichier_de_dump.sql
    Pour créer la BDD complète avec ses données sur un autre serveur MySQL, tu utilises la commande inverse de la précédente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -u nom_utilisateur_mysql -pson_mot_depasse nom_de_la_bdd < chemin/vers/fichier_de_dump.sql
    Pour ce qui de la sauvegarde et la restauration de la BDD, je l’ai testé avec l’interface graphique de PhpMyAdmin (Exporter-Importer) et ça marche à merveille.
    Les commandes en ligne c’est plutôt pour les pros pas pour les pauvres windows-clikers comme moi

    C'est plus clair ?
    Eh oui , grâce à toi

    les données seront dans les fichiers ibdata si tu utilises InnoDB.

    Juste pour tester, je viens de créer deux BDD, et j’ai vu qu’il y avait deux répertoires (un pour chaque BDD) mais à ma surprise un seul fichier ibdata
    Est ce que MySQL enregistre les données des enregistrements de toutes les BDDs confondues dans un seul et unique fichier ibdata ?!

  14. #14
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Est ce que MySQL enregistre les données des enregistrements de toutes les BDDs confondues dans un seul et unique fichier ibdata ?!
    Oui.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Oui.
    Je suis surpris , mais bon, je sais maintenant que l’important c’est de garder précieusement le fichier SQL créé avec la sauvegarde.

    Cher CinePhil,

    Merci infiniment pour ton aide et le temps que tu m’as consacré.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/07/2007, 12h14
  2. [Conception] Creation d'une appli pour consulter une base de données
    Par nico.elgringo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/07/2006, 11h58
  3. Réponses: 1
    Dernier message: 07/07/2006, 15h30
  4. Réponses: 8
    Dernier message: 23/03/2005, 19h28
  5. aide pour exporter une base de donnée
    Par matt55 dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 06/04/2004, 14h28

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