【问题标题】:SQL Ant Task: WARN: Establishing SSL connection without server's identity verification is not recommendedSQL Ant 任务: WARN: 不建议在没有服务器身份验证的情况下建立 SSL 连接
【发布时间】:2017-11-25 18:01:08
【问题描述】:

我正在运行ant task 在 MySQL-5.7 服务器上执行一些 SQL,但我不想使用 SSL。我目前正在使用mysql-connector-java-5.1.42.jar 连接到 MySQL-5.7 (v5.7.18-0ubuntu0.16.04.1)

我的 SQL 属性如下所示

<sql
    url="jdbc:mysql://mysql.box.lan:3306/mydb?autoReconnect=true&amp;useSSL=false&amp;verifyServerCertificate=false"
    userid="my-user"
    password="xxx"
    driver="com.mysql.jdbc.Driver"
    onerror="continue"
    showWarnings="false"
    delimiter=";"
    encoding="UTF-8">

不幸的是,驱动程序似乎并不关心autoReconnectuseSSL 和/或verifyServerCertificate 的任何组合,如提到的hereherehere

确切的错误是

Thu Jun 22 12:20:32 GMT 2017 警告:不建议在没有服务器身份验证的情况下建立 SSL 连接。根据 MySQL 5.5.45+、5.6.26+ 和 5.7.6+ 的要求,如果未设置显式选项,则默认情况下必须建立 SSL 连接。为了符合不使用 SSL 的现有应用程序,verifyServerCertificate 属性设置为“false”。您需要通过设置 useSSL=false 来显式禁用 SSL,或者设置 useSSL=true 并为服务器证书验证提供信任库。

【问题讨论】:

  • 尝试以分号结尾url="jdbc:mysql://mysql.box.lan:3306/mydb?autoReconnect=true&amp;amp;useSSL=false&amp;amp;verifyServerCertificate=false;"
  • @Tschallacka 感谢您的意见,不幸的是这并没有改变任何事情。

标签: mysql maven-ant-tasks


【解决方案1】:

这个怎么样:

<sql
    url="jdbc:mysql://mysql.box.lan:3306/mydb"
    userid="my-user"
    password="xxx"
    driver="com.mysql.jdbc.Driver"
    onerror="continue"
    showWarnings="false"
    delimiter=";"    
    encoding="UTF-8">
    <connectionProperty name="useSSL" value="false" />
    <connectionProperty name="verifyServerCertificate" value="false" />
    <connectionProperty name="autoReconnect" value="true" />
</sql>

我猜 ant 不解析连接 url 属性/不使用它们进行连接。通过使用connectionProperty 来设置各个值,这似乎是一个“合乎逻辑”的尝试

https://ant.apache.org/manual/Tasks/sql.html

【讨论】:

    猜你喜欢
    • 2017-02-03
    • 2023-03-13
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多