Connector/J Error CLIENT_PLUGIN_AUTH


#1

I am trying to integrate Manticore in my Java back-end, using the MySQL Connector/J to
connect to it, but get the following error:
java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required

on the line:
conn =
DriverManager.getConnection(“jdbc:mysql://127.0.0.1:9306?characterEncoding=utf8&maxAllowed
Packet=512000”, “”, “”);

Manticore version 2.8.0
MySQL version 8.0.11
Connector/J version 8.0.11

I have tried many suggestions such as:
mysql_version_string = 5.5.21 (and other version numbers)
adding “&useSSL=false” to the jdbc URL
adding “&useUnicode=true” to the jdbc URL
trying sphinx search instead
the combinations thereof (and many other things)

Please note that running everything in the command line works fine (i.e., connecting to
manticore using “mysql -P9306” and sending SphinxQL commands). Additionally, I don’t think
that downgrading JDBC connector would work since I still need to connect to MySQL 8.

Any help/advice would be greatly appreciated.


#2

For connector 6.x and 8.x there’s an issue in the handshake protocol, I’ve opened an internal ticket about it.
On connector 5. if you get an error about ‘wait_timeout’ set mysql_version_string = 5.0.0.
MySQL8 use a newer auth plugin, but 5.x should work if you use ‘mysql_native_password’


#3

I’ve commited a fix for the handshake protocol issue, it’s going to be included in the next release.

Another thing required is to pass serverTimezone=xxx ( like UTC) to the DSN string. The Connector tries to determine timezone of the daemon, but we are not feeding yet the timezone variables. Also don’t set mysql_version_string to values greater than 5.1.1 - the connector tries to run an unsupported query by Manticore after handshake is established.
This aspect is now documented here .


#4

Has the fix been pushed to 2.8.1 GA on March 6 2019? The documentation you linked suggests that the fix is part of 2.8.1, but the Release Notes don’t mention this change.

In case it is supposed to work for 2.8.1 (please disregard the rest of the post if it is not fixed as part of 2.8.1), I still cannot get it to work. I’ve followed your instructions as well as the new documentation:

  1. Upgraded to Manticore 2.8.1
  2. Added serverTimezone=UTC to my jdbc connection
  3. Set mysql_version_string to 5.0.0
  4. Set MySQL’s default_authentication_plugin to mysql_native_password
  5. Combinations of all of the above

I am still getting the “java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required” error.

Manticore version 2.8.1
MySQL version 8.0.11
Connector/J version 8.0.11


#5

No, the fix didn’t made into 2.8.1, the next release I was talking about was 2.8.2, sorry for confusion.
You can compile Manticore from sources, it’s fairly easy (2.8.2 should be released somewhere at the end of the month). Which OS do you use?


#6

Thanks for the quick reply. It’s greatly appreciated. Since we’ve implemented a “hacky” work-around (using two different MySQL Connector versions in the same project), we’ll probably wait for the next Manticore release. I’ll update this thread when 2.8.2 is released and I get to try it.