2014-10-14 4 views
0

У меня есть тайна для вас.mysql-java-connector connexion denied

Я пытаюсь подключиться к серверу mysql на виртуальной машине (ip: 192.168.60.96, работая на моей собственной машине, подключенной к сети через мост).

Полная информация Система:

Ведущий:

Fedora 20 
Virtualbox 4.3.16 
Eclipse 4.3 
MySql-connector-java 5.1.33 

Виртуальная машина:

Debian 6 
MySql 5.1.73 

Отклики ОК PhpMyAdmin запустить OK

Вот код, который я пытаюсь перейти на работу:

/* 
* Cr�� le 24 sept. 2012 
* 
* TODO Pour changer le mod�le de ce fichier g�n�r�, allez � : 
* Fen�tre - Pr�f�rences - Java - Style de code - Mod�les de code 
*/ 
package sec.tests; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 

public class TestSgbd { 

    public static void main(String[] args) { 
     // TODO Raccord de m�thode auto-g�n�r� 
     String url = "jdbc:mysql://192.168.60.96:3306/secolog"; 
     System.out.println(url); 
     try { 
      System.out.println("chargement du driver"); 
      Class.forName("com.mysql.jdbc.Driver"); 
      System.out.println("r�cup�ration de la connexion"); 
      Connection con = DriverManager.getConnection(url,"usecolog","password"); 
      System.out.println("cr�ation d'un statement"); 
      Statement requete = con.createStatement(); 
      System.out.println("execution d'une requete"); 
      ResultSet resultat = requete.executeQuery("select * from CLIENT"); 
      while (resultat.next()) { 
       System.out.println(resultat.getString(1)+" "+resultat.getString(2)); 
       }; 
      System.out.println("fin"); 
      } 
     catch(Exception e) { 
      System.out.println("Exception"); 
      e.printStackTrace(); 
      } 
    } 

} 

А вот исключение:

jdbc:mysql://192.168.60.96:3306/secolog 
chargement du driver 
r�cup�ration de la connexion 
Exception 
java.sql.SQLException: Access denied for user 'usecolog'@'192.168.60.97' (using password: YES) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:996) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3887) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3823) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870) 
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4332) 
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1258) 
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2234) 
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2265) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2064) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:790) 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:377) 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325) 
    at java.sql.DriverManager.getConnection(DriverManager.java:571) 
    at java.sql.DriverManager.getConnection(DriverManager.java:215) 
    at sec.tests.TestSgbd.main(TestSgbd.java:24) 

Любая идея?

+0

и я думаю, ваши работы виртуальной машины на вашей машине ... – user2504380

+0

Вы перепроверить свой пароль и имя базы данных? –

ответ

0

В сообщении говорится, что пользователю usecolog не разрешен доступ к базе данных от хозяин 192.168.60.97. Таким образом, вы должны предоставить своему пользователю в базе данных разрешение на доступ к форме базы данных там (или из любого места через % в поле хоста. Это может быть полезно, когда клиент имеет динамический IP-адрес через DHCP).

GRANT ALL PRIVILEGES ON secolog.* TO [email protected]'192.168.0.97' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION; 
FLUSH PRIVILEGES; 
0

Он не подключается к неправильному IP, сообщение об ошибке говорит о клиенте:

java.sql.SQLException: Access denied for user 'usecolog'@'usecolog' (using password: YES) 

это означает, что usercolog не имеет доступа для подключения к базе данных от 192.168.60.97 IP. Вам необходимо установить привилегии для usercolog, чтобы установить соединение с IP-адресом вашего компьютера.

, чтобы установить эту специальные разрешения используйте команду:

GRANT ALL PRIVILEGES ON secolog.* TO 'usecolog'@'%192.168.60.97' IDENTIFIED BY 'secologuserpassword'; 
FLUSH PRIVILEGES; 
+0

У usecolog есть разрешение для подключения со всех ip (от '%') – Dremor

+0

@Dremor Нет у него нет разрешений, возможно, вы не сбросили листы после добавления. –

+0

Я пробовал 2 раза, без изменений – Dremor