簡體   English   中英

無法從Java連接到MYSQL數據庫

[英]Unable to connect to MYSQL database from java

我是MySQL和UNIX的新手,實際上是從一個UNIX盒連接到另一個,我使用ssh -i commonprivatekey -p 60041 root@172.16.28.102 一旦連接成功,我將執行mysql -uroot -ppassword mysql mysql提示符,我可以執行select命令。

環保詳情:

IP               : 172.16.28.102
SSH Port         :  60041
usernames        :  root
passwords        :  password
SSH Privatekey   :  commonprivatekey
mySQL DB Port    :  60040
mySQL DB Name    :  mysql
mySQL DB UserID  :  root
mySQL DB Password:  password

我的Java代碼是

try {
  Class.forName("com.mysql.jdbc.Driver");
  conn = DriverManager.getConnection("jdbc:mysql://172.16.28.102:60040/mysql", "root", "password");
}  catch (SQLException e) {
  logger.error("Could not connect to the database", e);
}

異常跟蹤:

Caused by: java.sql.SQLException: null,  message from server: "Unknown error 1130"
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1095)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    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:422)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at uk.accenture.fdt.batch.control.ConnectionsHelper.getDatabaseConnection(ConnectionsHelper.java:35)

您的應用程序是否與mysql數據庫位於同一服務器上? 錯誤1130聽起來像不允許用戶連接到數據庫。 也許不允許客戶端IP連接到該數據庫。 例如,如果您有一個用戶root @ locahost,則只能從同一服務器連接。 因此,創建一個允許通過IP連接的用戶。 我想用戶應該從嘗試連接的盒子中獲取IP。

CREATE USER '<username>'@'<ip from the box>' IDENTIFIED BY '<password>';

您需要給他適當的權利。 以下代碼應授予他所有權利。 您可能不需要。

GRANT ALL PRIVILEGES ON <database name>.* TO '<username>'@'<ip from the box>';

i)u在庫文件夾中添加一個mysql連接器jar文件,然后右鍵單擊lib-> buildpath-> configurebuildpath,然后它將顯示輸入對話框的屬性,然后單擊library-> addexternal jar->添加您的jar文件,下次單擊順序並支持->選擇所有項目->單擊確定。 ii)轉到您的項目,右鍵單擊bulidpath-> configure buildpath-> ok

如果您確實做這些事,那么請在您的數據庫中檢查您的同姓。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM