什么JDBC属性对应于mysql命令行的“–skip-secure-auth”选项?

我有一个遗留数据库需要从命令提示符这样连接

mysql --uUserName -hHostName -pPassword -P3307 -A Schema --skip-secure-auth 

如何在JDBC属性中指定相同的内容--skip-secure-auth

 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://HostName:3307/Schema jdbc.user=UserName jdbc.password=Password jdbc.maxConnections=5 

--skip-secure-auth允许使用旧的4.1之前的密码散列方法。 这种过时的身份validation机制由称为mysql_old_password的插件处理。

根据Connector / J手册 ,默认情况下它没有被禁用(阅读有关disabledAuthenticationPlugins选项的信息),所以我认为默认行为是允许这样的连接(即相当于mysql --skip-secure-auth )。

如果有人仍然使用较旧的密码哈希方法与MySQL的OP相同的问题,那么建议的做法是更改密码,如此处所指出的 。

如果目前上述情况不可能而且您只是想让您的JDBC连接器以旧的不太安全的方式连接到MySQL,那么在context.xml文件中执行此操作的方法是

 authenticationPlugins="com.mysql.jdbc.authentication.MysqlOldPasswordPlugin" 

不确定相应的JDBC语法是什么。

由于mysql-connector-java-5.1.19(我最新的一个是5.1.23)JAR,默认的身份validation是com.mysql.jdbc.authentication.MysqlNativePasswordPlugin ,因此您基本上将身份validation模式从默认模式更改为旧模式通过上面提到的片段。