簡體   English   中英

使用Java連接到MySql - SSL連接

[英]Connecting to MySql using Java - SSL Connection

我一直在嘗試連接到使用ssl與java連接的MySql數據庫並遇到麻煩,如果有人可以幫助我將會有很大的幫助。

手動連接到MySql:

我們使用MySQL Workbench,參數 - 主機名 - “test-db1-ro-xxxxxx.net”,端口 - 3306,用戶名,密碼。 有一個SSL CA文件 - mysql-ssl-ca-cert.pem,手動連接成功。

我在java中嘗試過相同的(在windows系統中)我的代碼:

String url = "jdbc:mysql://test-db1-ro.apdev.XXXXXX.net:3306/database";
String driver = "com.mysql.jdbc.Driver"; 
String userName = "XXXXXXXX"; 
String password = "XXXXXXXX";
Class.forName(driver).newInstance();
Connection conn = DriverManager.getConnection(url,userName,password);

當我運行代碼時,我得到一個錯誤“拒絕訪問”我認為這是由於SSL連接。

在這種情況下,我無法知道如何使用.pem文件建立與數據庫的安全連接。

可以幫助一些人,做了各種各樣的事情,但總是得到相同的訪問被拒絕錯誤。

完整StackTrace:

java.sql.SQLException: Access denied for user 'xxxxxxxx' (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:885)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3421)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1247)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2775)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at TestDBConnection.main(TestDBConnection.java:34)

您無法通過身份驗證。
在MySql終端上:

GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

如果問題仍然存在:

GRANT ALL ON *.* TO 'user'@'%' WITH GRANT OPTION;

此命令授予您超級用戶權限。

FLUSH PRIVILEGES;

確保加載您的權限。

注意:請勿在具有公共訪問權限的網站上使用此帳戶。

暫無
暫無

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

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