Accès base de données en local

Fermé
AKH.COVI Messages postés 37 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 22 février 2018 - 13 mai 2016 à 17:22
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 17 mai 2016 à 17:15
Bonjour,

J'ai fait une application avec java qui marche parfaitement sur un poste. je veux pouvoir l'utiliser en local. c'est à dire sur plusieurs poste qui sont en reseau. j'ai donc modifier l'accès localhost par l'adresse Ip du poste qui me sert de serveur. Mais le souci est que je n'arrive pas à acceder à la base. Aidez moi sil vous plait.


2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
13 mai 2016 à 20:57
Bonjour,

Où est ta base de données (sur quel pc) ?
Quelles applications accède à cette base (les clients ou le serveur) ?
Comment est configurée actuellement l'accès à cette base ?
0
Utilisateur anonyme
13 mai 2016 à 21:17
+ peux tu pinguer les machines entre-elles ?
0
Merci kx,
La base est sur le pc qui me sert de serveur ( wampserver avec mysql ). Ensuite mon code est lancer ds netbeans depuis un autre pc. Sachant que les deux machine son en reseau local. (Ping reussi )
Ceci pour dire que le serveur a la base et l application; ensuite les autres(clients) doivent acceder a la base sur le serveur wamp.
Ci dessous le code d access a la base
<database>
    <url>jdbc:mysql://localhost:3306/facturebd?zeroDatetimeBehavior=convertToNull</url>
    <host>127.0.0.1</host>
    <port>3306</port>
    <schema>facturebd</schema>
    <user>root</user>
    <password></password>
    <driver>com.mysql.jdbc.driver</driver>
</database>

Il faut souligner que celui si marche parfaitement sur le serveur elle meme. Maintenant sur les clients le programe cree automatiquement ce fichier que jai nommer propriete c est labas que je change le host par ip du serveur.
J espere que jai repondu a votre question. Merci
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
13 mai 2016 à 21:34
"le serveur a la base et l application; ensuite les autres(clients) doivent acceder a la base sur le serveur"
Normalement les clients ne devraient pas accéder à la base, pour obtenir des données elles devraient uniquement appeler le serveur qui lui va chercher les données en base.

Un vieux diagramme qui traîne sur l'architecture Java EE :
Architecture J2EE

<database>
<url>jdbc:mysql://localhost:3306/facturebd?zeroDatetimeBehavior=convertToNull</url>
<host>127.0.0.1</host>

Sinon, dans ta config, l'utilisation de localhost et 127.0.0.1 ne peuvent pas être bon, ça devrait fonctionner du serveur à la base s'ils sont sur la même machine, mais les clients qui sont sur une autre machine ne peuvent pas y accéder.
0
AKH.COVI Messages postés 37 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 22 février 2018 > KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024
17 mai 2016 à 08:58
Bonjour,
Alors dans mon cas, je procede comment?
Merci
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
17 mai 2016 à 17:15
En modification rapide tu changes les appels en localhost et 127.0.0.1 pour mettre le nom ou l'adresse IP de la machine où tu as ton serveur.
En modification un peu plus compliqué tu dois supprimer tout tes appels des clients vers la base de données pour les remplacer par des appels au serveur qui sera le seul à appeler la base de données.
0
Prg9 Messages postés 6 Date d'inscription vendredi 13 mai 2016 Statut Membre Dernière intervention 15 mai 2016
14 mai 2016 à 15:27
Salut,

Il y a plusieurs raison pour l’échec d’une connexion a une base de donnée :

1.vérifier que ton serveur accepte les connexions externes (donner la permission des IP des pc sur le port 3306).
2.Les privilèges de connexion au serveur ne sont pas permis aux utilisateurs externes. Essayer cette instruction sur la console ssh de MySql :
grant all privileges on *.* to user@xxx.xxx.xxx.xxx identified by "userpassword";
dont : xxx.xxx.xxx.xxx est l’adresse IP du serveur et user : nom d'utilisateur à qui vous accordez l'accès, userpassword est le mot de passe pour ce l'utilisateur, puis redémarrer le serveur.
3. Par défaut, MySQL n'écoute que localhost .alors dans le ficher de configuration désactiver la ligne relative au bind-address.et redémarrer le serveur a nouveau.
4.Peut être le firewall de Windows bloque la connexion externes (désactiver le pour vérifier).
5.Peut être l’antivirus qui bloque la connexion a votre pc Serveur (désactiver le pour vérifier).
6.Et bien sur le couple user/ Password dois être correcte.
0
AKH.COVI Messages postés 37 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 22 février 2018
17 mai 2016 à 09:14
Bonjour,
Merci de m'avoir éclairé; vous avez été tres clair et précis. Néanmoins étant un debutant, je ne sais pas comment proceder pour les point 1 et 2. Pourriez vous me guider s'il vous plait?
le point 3 j'ai pas de ligne bind-address dans le fichier de configuration.

En plus j'ai lu sur certains forum que souvent c'est Windows qui bloque l'acces à distance pour probleme de sécurité. Alors j'ai du faire un test avec ubuntu; la la connexion à la base est effective sauf qui donne un erreur au niveau de l'acces à la table utilisateurs pour la connexion.
0