Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 15 sur 15
  1. #1
    Invité de passage
    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 : 4
    Points
    4

    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 Vincent
    Inscrit en
    juillet 2005
    Messages
    19 850
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 19 850
    Points : 26 131
    Points
    26 131

    Par défaut

    Le chemin "datadir" est défini dans le fichier my.ini doit se trouver dans mysql/bin

  3. #3
    Invité de passage
    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 : 4
    Points
    4

    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 Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 713
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 50
    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 : 13 713
    Points : 25 575
    Points
    25 575

    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 de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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
    Invité de passage
    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 : 4
    Points
    4

    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 Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 713
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 50
    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 : 13 713
    Points : 25 575
    Points
    25 575

    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 :
    mysqldump -u user_mysql -pson_mot_de_passe nom_bdd > dump_nom_bdd_date.sql
    Le chargement du dump sur le serveur :
    Code :
    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 de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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
    Invité de passage
    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 : 4
    Points
    4

    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
    Modérateur
    Avatar de rawsrc
    Homme Profil pro Martin
    Dev indep
    Inscrit en
    mars 2004
    Messages
    3 134
    Détails du profil
    Informations personnelles :
    Nom : Homme Martin
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 3 134
    Points : 7 287
    Points
    7 287

    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.
    # Dans la Création, tout est permis mais tout n'est pas utile...

  9. #9
    Invité de passage
    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 : 4
    Points
    4

    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 Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 713
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 50
    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 : 13 713
    Points : 25 575
    Points
    25 575

    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 de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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
    Invité de passage
    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 : 4
    Points
    4

    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 Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 713
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 50
    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 : 13 713
    Points : 25 575
    Points
    25 575

    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 :
    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 :
    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 de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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
    Invité de passage
    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 : 4
    Points
    4

    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 :
    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 :
    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 Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 713
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 50
    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 : 13 713
    Points : 25 575
    Points
    25 575

    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 de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « 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
    Invité de passage
    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 : 4
    Points
    4

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •