2016-10-19 2 views
1

En supposant que j'ai cette chaîne de connexion sur mon hôte local:Java Connexion à distance

public static Connection ConnectDB(){ 
    try{ 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = DriverManager.getConnection("jdbc:mysql://localhost/supermarket", "root","");  
     return con; 
    } 

Quand je suis en train de se connecter à ce système d'un autre. Que devrais-je changer pour accéder à la base de données?

Dis mon adresse IP sur le système est: 192.168.137.1

+0

remplacer "localhost" avec cette adresse IP. – f1sh

+0

Commencez par remplacer 'localhost' par l'adresse IP. Je pense que vous devrez également fournir le numéro de port. Quelque chose comme 'x.x.x.x: yyyy' – user2004685

+0

votre déclaration deviendrait Connexion con = DriverManager.getConnection (" jdbc: mysql: //192.168.137.1: 6036/supermarket "," root "," "); Utiliser l'adresse IP et le numéro de port appropriés –

Répondre

1

votre déclaration deviendrait

Connection con = DriverManager.getConnection("jdbc:mysql://<IP Address>:<Port>/supermarket", "root",""); 

Utilisez IP et Portnumber

Connection con = DriverManager.getConnection("jdbc:mysql://192.168.137.1:6036‌​/supermarket", "root",""); 
1

appropriée Pour accéder à un mysql db à distance, vous avez 3 choses à considérer:

  1. Indiquez l'adresse IP à droite et le port de votre serveur distant
  2. Assurez-vous que le pare-feu de votre serveur est correctement configuré pour autoriser les accès à distance sur votre port serveur
  3. Accordez les privilèges nécessaires à votre utilisateur pour permettre des accès à distance

commande à exécuter pour accorder des privilèges à votre utilisateur d'accéder à la dB de tous les hôtes distants:

GRANT ALL PRIVILEGES 
ON supermarket.* 
TO 'root'@'%' 
IDENTIFIED BY 'password'; 
1

votre connexion est ok. Mais localhost représente l'adresse IP de votre machine locale.

Vous devez changer les choses suivantes:

Faire db.properties fichier

connection=jdbc:mysql://192.168.137.1:6036‌​/supermarket 
username=root 
password=xyz 

Et Ajoutez le code suivant dans la méthode principale

public static Connection ConnectDB(){ 
    try{ 
     FileReader reader=new FileReader("db.properties"); 

    Properties p=new Properties(); 
    p.load(reader); 

     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = DriverManager.getConnection(p.getProperty("connection"),p.getProperty("username"),p.getProperty("password"));  
     return con; 
    }