使用Java连接到MySql-SSL连接 [英] Connecting to MySql using Java - SSL Connection

查看:362
本文介绍了使用Java连接到MySql-SSL连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直试图连接到使用ssl连接和Java的MySql数据库,但是遇到麻烦,如果有谁可以帮助我,会很有帮助.

I have been trying to to connect to MySql data base which uses ssl connection with java and having trouble, if any one can help me will be of great help.

手动连接到MySql:

Manual Connection to MySql:

我们使用MySQL Workbench,参数-主机名-"test-db1-ro-xxxxxx.net",端口-3306,用户名,密码. 有一个SSL CA文件-mysql-ssl-ca-cert.pem,手动连接成功.

We use MySQL Workbench , parameters - Hostname - "test-db1-ro-xxxxxx.net" , Port - 3306 , User Name , Password. There is a SSL CA File - mysql-ssl-ca-cert.pem , the manual connection is successful.

我在Java中尝试过相同的操作(在Windows系统中) 我的代码:

I tried the same in java (in windows system) My code:

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连接所致.

when i run the code i get an error as "Access Denied" I am thinking it is due to the SSL Connection.

在这种情况下,我不知道如何使用.pem文件建立与数据库的安全连接.

I am not able to know how to use the .pem file to make a secure connection to database in this case.

能帮上忙,做了很多事情,但总是得到相同的拒绝访问错误.

Can some one help, have done various things but always get the same access denied error.

完整StackTrace:

Full 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终端上:

You have trouble authenticating.
On the MySql terminal:

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

如果问题仍然存在:

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

此命令授予您超级用户特权.

This command grants you superuser privileges.

FLUSH PRIVILEGES;

以确保您的特权已加载.

To make sure your privileges are loaded.

注意::请勿在具有公共访问权限的网站上使用此帐户.

NB: Do not use this account on websites with public access.

这篇关于使用Java连接到MySql-SSL连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆