Précédent   Forum du club des développeurs et IT Pro > Bases de données > MySQL > Installation
Installation Forum d'entraide sur les problèmes liés à l'installation de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/10/2012, 14h23   #1
SummerBoy
Invité de passage
 
Homme
Inscription : 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
SummerBoy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 15h03   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 471
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 471
Points : 21 278
Points : 21 278
Le chemin "datadir" est défini dans le fichier my.ini doit se trouver dans mysql/bin
sabotage est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 15h17   #3
SummerBoy
Invité de passage
 
Homme
Inscription : octobre 2008
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2008
Messages : 15
Points : 4
Points : 4
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)
SummerBoy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 15h31   #4
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
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 659
Points : 25 563
Points : 25 563
Envoyer un message via MSN à CinePhil
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 !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 15h50   #5
SummerBoy
Invité de passage
 
Homme
Inscription : octobre 2008
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2008
Messages : 15
Points : 4
Points : 4
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à?
SummerBoy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 16h16   #6
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
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 659
Points : 25 563
Points : 25 563
Envoyer un message via MSN à CinePhil
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 !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/10/2012, 19h20   #7
SummerBoy
Invité de passage
 
Homme
Inscription : octobre 2008
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2008
Messages : 15
Points : 4
Points : 4
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 ?
SummerBoy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 22h24   #8
rawsrc
Modérateur
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 2 587
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 36
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 2 587
Points : 6 037
Points : 6 037
Envoyer un message via Skype™ à rawsrc
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...
rawsrc est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/10/2012, 14h52   #9
SummerBoy
Invité de passage
 
Homme
Inscription : octobre 2008
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2008
Messages : 15
Points : 4
Points : 4
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
SummerBoy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2012, 15h02   #10
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
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 659
Points : 25 563
Points : 25 563
Envoyer un message via MSN à CinePhil
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 !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2012, 16h53   #11
SummerBoy
Invité de passage
 
Homme
Inscription : octobre 2008
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2008
Messages : 15
Points : 4
Points : 4
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à ?
SummerBoy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2012, 17h21   #12
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
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 659
Points : 25 563
Points : 25 563
Envoyer un message via MSN à CinePhil
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 !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/10/2012, 18h57   #13
SummerBoy
Invité de passage
 
Homme
Inscription : octobre 2008
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2008
Messages : 15
Points : 4
Points : 4
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.

Citation:
Code :
mysqldump -u nom_utilisateur_mysql -pson_mot_depasse nom_de_la_bdd > chemin/vers/fichier_de_dump.sql
Citation:
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

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

Citation:
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 ?!
SummerBoy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2012, 19h05   #14
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
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 659
Points : 25 563
Points : 25 563
Envoyer un message via MSN à CinePhil
Citation:
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 !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/10/2012, 19h30   #15
SummerBoy
Invité de passage
 
Homme
Inscription : octobre 2008
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2008
Messages : 15
Points : 4
Points : 4
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é.
SummerBoy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h40.


 
 
 
 
Partenaires

Hébergement Web