user7421317
user7421317

Reputation:

New authentificaion protocol of MySQL 8.0

In MySQL 8.0.4 there is a new client <-> server authentificaion protocol. When I try to connect from my client to the MySQL server, the MySQL server responses:

Client does not support authentication protocol requested by server; consider upgrading MySQL client

Until now, I connect to the MySQL directly from my application - without the libMySQL.dll. So I communicate without a library directly via TCP/IP. Now I have to implement the new authentification. Where do I get information about the new client server protocol?

Inside the MySQL Internals Manual I don't find information about it. Is this not update to date?

Other MySQL client applications are having the same problem. So it's not a problem of my developing language - it's a problem of the client <-> server protocol of the MySQL server. (I'm using Delphi and my client library has more than 3000 lines of code.)

I'm looking for a solution working with each MySQL server - not only for my one. So changing the password storing is not a solution for me.

Upvotes: 1

Views: 419

Answers (1)

JaneDoe
JaneDoe

Reputation: 462

For MySQL 8 the default authentication is now SHA-2 which you can read about here: https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html

You should probably use it however if you don't wish to you can change the default to the legacy mode for any given user with something like this:

ALTER USER myUser IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

That will force the old method if you're looking for a quick fix.

You don't (I suspect) want to start altering the source code for your client because then you have a branched version of it which is going to make deployment and updating on your servers a nightmare. You're better off simply waiting until such time as a new version of your client software is available that supports the new method.

MySQL source is here: https://github.com/mysql

Upvotes: 2

Related Questions