[英]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.