【问题标题】:java mysql SSL connectionjava mysql SSL连接
【发布时间】:2019-11-20 11:56:42
【问题描述】:

我正在尝试建立从 java 应用程序到 mysql 服务器的 SSL 连接。以下是设置细节。

  • java 8
  • mysql服务器版本:5.7.28
  • mysql-connector-java-8.0.12
  • 连接字符串: jdbc:mysql://localhost:3306/carbon_mysql?autoReconnect=true&useSSL=true&requireSSL=true

但是当我尝试通过 java 应用程序连接时,会抛出以下异常。

Caused by: com.mysql.cj.exceptions.WrongArgumentException: Malformed database URL, failed to parse the connection string near '=true&requireSSL=true'.
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:423)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:59)
at com.mysql.cj.conf.ConnectionUrlParser.processKeyValuePattern(ConnectionUrlParser.java:524)
at com.mysql.cj.conf.ConnectionUrlParser.parseQuerySection(ConnectionUrlParser.java:496)
at com.mysql.cj.conf.ConnectionUrlParser.getProperties(ConnectionUrlParser.java:621)
at com.mysql.cj.conf.ConnectionUrl.collectProperties(ConnectionUrl.java:302)
at com.mysql.cj.conf.ConnectionUrl.<init>(ConnectionUrl.java:287)
at com.mysql.cj.conf.url.SingleConnectionUrl.<init>(SingleConnectionUrl.java:47)
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:423)
at com.mysql.cj.util.Util.handleNewInstance(Util.java:210)
at com.mysql.cj.util.Util.getInstance(Util.java:185)
at com.mysql.cj.util.Util.getInstance(Util.java:192)
at com.mysql.cj.conf.ConnectionUrl.getConnectionUrlInstance(ConnectionUrl.java:189)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:201)
... 83 more

【问题讨论】:

  • 请检查您的数据库网址是否正确
  • 当您将 JDBC url 转换为 jdbc:mysql://localhost:3306/carbon_mysql?autoReconnect=true&amp;amp;useSSL=true&amp;amp;requireSSL=true 并对其进行 url 编码时会发生什么?
  • 贴出实际代码。

标签: java mysql ssl jdbc connection-string


【解决方案1】:

尝试将您的连接网址更改为

jdbc:mysql://localhost:3306/carbon_mysql?autoReconnect=true&useSSL=true&requireSSL=true&verifyServerCertificate=true

您还必须确保已在 mysql 上授予 ssl。 在 MySQL 服务器中以 root 身份登录,然后运行下面给出的查询:

GRANT USAGE ON *.* TO 'root'@'%' REQUIRE SSL; 
FLUSH PRIVILEGES;

【讨论】:

    猜你喜欢
    • 2017-03-27
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多