2016-08-09 1 views
0

J'ai un code qui fonctionne bien sur la machine, où j'ai installé la base de données.Java MySQL Se connecter au serveur

J'essaie d'exécuter ce code à partir d'un autre ordinateur, qui se connecte à la machine sur laquelle MySQL est installé et essaie de mettre à jour les données. Cependant, ce code ne fonctionne pas à partir d'une autre machine. J'essaie de me connecter comme suit.

ds = new BasicDataSource(); 
ds.setDriverClassName("com.mysql.jdbc.Driver"); 
ds.setUrl("jdbc:mysql://192.168.0.104:3306/sd_mmm_data"); 
ds.setUsername("<UserName>"); 
ds.setPassword("<PassCode>"); 
ds.setMaxIdle(1); 
ds.setMaxWaitMillis(40000); 

J'ai remplacé l'hôte local par l'adresse IP correspondante. Cependant quand je cours le code, j'obtiens toujours la table d'erreur non trouvée.

J'ai créé un nouvel utilisateur qui peut se connecter à partir d'autres machines et l'utilisateur dispose de tous les privilèges requis. J'ai essayé de me connecter à partir de l'invite cmd sur le système client et la connexion fonctionne comme prévu les requêtes se déroulent comme prévu. J'ai essayé de me connecter à partir de mysql WorkBench et la connexion fonctionne depuis le système client. mais la connexion ne fonctionne pas à partir du code Java. Qu'est-ce que je rate?

J'ai ajouté une entrée dans le fichier hosts du système client comme suit ServerName Et j'ai essayé d'utiliser le ServerName à la place de l'adresse IP dans le code java. Même cela n'a pas fonctionné.

+0

Vous devriez mettre le code Java complet je pense. –

+0

quel est le nom de la table? –

+0

Lorsque vous recevez une erreur "Table introuvable", il n'y a pas de problème de connexion au serveur –

Répondre

1

Je pense que vous devez utiliser accorder à l'utilisateur distant qui permet l'accès pour l'utilisateur distant.

ATTRIBUER TOUS LES PRIVILEGES AU . POUR 'USERNAME'@'1.2.3.4' IDENTIFIÉ PAR 'PASSWORD' AVEC OPTION DE SUBVENTION;

+0

Le nom d'utilisateur et le mot de passe fonctionnent à partir de Client Machine. J'ai testé la connexion à partir de l'invite de commande et de WorkBench sur la machine client. La connexion fonctionne et je suis capable de récupérer les données aussi. La connexion ne fonctionne pas uniquement à partir du code Java. – kris123456

0

Nouveau groupe d'utilisateurs créé. Privilèges vidés mais cela n'a pas fonctionné. Puis a continué à fermer la base de données et essayé de le redémarrer. Même cela n'a pas fonctionné. Mais essayé de jouer avec les paramètres et essayé de créer de nouveaux utilisateurs et essayé de connexion, qui a finalement fonctionné. Ne me souviens pas exactement pourquoi cela a fonctionné comme j'ai touché plusieurs paramètres de réseau.