2015-02-08 32 views
1

我連接到一個遙遠的MySQL數據庫從我的web應用程序我使用Hibernate和Spring框架錯誤:MySQLSyntaxErrorException - 選擇命令拒絕用戶

當我嘗試從數據庫中獲取元素,這不是」由於缺乏特權而無法工作。

public Medecin getMedecinByLoginPassword(String login, String password) { 
    System.out.println(login); 
    System.out.println(password); 
    List list; 
    list = getSessionFactory().getCurrentSession() 
     .createQuery("from Medecin where login= :login and password= :password") 
     .setString("login", login).setString("password", password).list(); 
    return (Medecin) list.get(0); 
} 

只有本地SQL工程,從遙遠的數據庫別的任何事情,我得到這個錯誤

錯誤

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SELECT command denied to user 'tunisie_tunisie'@'196.203.218.102' for table 'medecin' 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:408) 
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 
at com.mysql.jdbc.Util.getInstance(Util.java:381) 
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030) 
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) 
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) 
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) 
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542) 
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734) 
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885) 
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93) 
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186) 
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787) 
at org.hibernate.loader.Loader.doQuery(Loader.java:674) 
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) 
at org.hibernate.loader.Loader.doList(Loader.java:2220) 
... 83 more 

回答

1
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SELECT command denied to user 'tunisie_tunisie'@'196.203.218.102' for table 'medecin' 

這清楚地指出數據庫你得到的數據試圖用主機ip 196.203.218.102的用戶名tunisie_tunisie連接未被授權使用此表。檢查您是否擁有訪問此數據庫的正確權限。

+0

我已經討論過,與Web主機管理器,但他肯定,問題是在我的代碼我可以建立與其他Java應用程序的數據庫連接並獲取數據,但從這個應用程序它不起作用 – JEEDEV 2015-02-09 08:58:00

+0

確保如果您可以使用數據庫詳細信息進行連接。您可以使用此代碼來測試[鏈接](http://www.ekiras.com/2014/09/create-mysql-database-jdbc-connection-in-java.html)。如果您可以通過此代碼連接到數據庫,那麼您需要檢查您的代碼。首先檢查您是否能夠使用此代碼連接數據庫。 – 2015-02-09 10:00:53

+0

連接成功建立 我認爲這是一個由於spring-security框架引起的特權問題 – JEEDEV 2015-02-09 12:48:42