我在MySQL-5.7服务器上运行ant task
做一些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&useSSL=false&verifyServerCertificate=false"
userid="my-user"
password="xxx"
driver="com.mysql.jdbc.Driver"
onerror="continue"
showWarnings="false"
delimiter=";"
encoding="UTF-8">
不幸的是,驱动程序似乎并不关心autoReconnect
,useSSL
和/或verifyServerCertificate
的任何组合,如上所述here,here和{ {3}}
确切的错误是
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并为服务器证书验证提供信任库。
答案 0 :(得分:2)
这个怎么样:
<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>
我猜测蚂蚁没有解析连接网址属性/没有使用它们进行连接。这似乎是一个“合乎逻辑的”#34;要使用connectionProperty
设置单个值