3
我一直在嘗試連接到MySql數據庫,它使用與java的ssl連接並遇到麻煩,如果任何人可以幫助我將會有很大的幫助。使用Java連接到MySql - SSL連接
手動連接到MySQL的:
我們使用MySQL工作臺,參數 - 主機名 - 「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文件建立到數據庫的安全連接。
有人可以幫忙,做了各種事情,但總是得到相同的訪問被拒絕的錯誤。
完整堆棧跟蹤:
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)
您可以從閱讀本文開始http://dev.mysql.com/doc/connector-j/en/connector-j-reference-using-ssl.html – Stephan
使用.pem文件創建密鑰庫,然後更改我的代碼如下,但仍然有問題。 你能想到別的嗎? String url =「jdbc:mysql://test-db1-ro.apdev.XXXXX.net:3306/database」+「&useSSL = true」+「&requireSSL = true」; System.setProperty(「javax.net.ssl.keyStore」,「path」); System.setProperty(「javax.net.ssl.keyStorePassword」,「password」); – Sanathan
您可以提供完整的堆棧跟蹤,或「拒絕訪問」來自哪個錯誤消息? –