MySQL8.0新的authentificaion协议

ztigrdn8  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(428)

在mysql 8.0.4中,有一个新的客户端<->服务器authentificaion协议。当我尝试从客户端连接到mysql服务器时,mysql服务器会响应:
客户端不支持服务器请求的身份验证协议;考虑升级mysql客户端
到目前为止,我直接从应用程序连接到mysql,而不使用libmysql.dll。因此,我在没有库的情况下直接通过tcp/ip进行通信。现在我必须实现新的身份验证。我从哪里获得有关新客户机-服务器协议的信息?
在mysql内部手册中,我没有找到关于它的信息。这不是最新的吗?
其他mysql客户机应用程序也有同样的问题。所以这不是我的开发语言的问题,而是mysql服务器的客户机<->服务器协议的问题(我使用的是delphi,我的客户机库有3000多行代码。)
我正在寻找一个解决方案与每一个mysql服务器-不只是我的一个。所以更改密码存储对我来说不是一个解决方案。

xfb7svmp

xfb7svmp1#

对于mysql 8,默认身份验证现在是sha-2,您可以在这里阅读:https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html
但是,如果您不想,您可能应该使用它,您可以通过以下方式将任何给定用户的默认模式更改为传统模式:

ALTER USER myUser IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

如果你正在寻找一个快速的解决方法,那将强制使用旧方法。
你不想(我怀疑)开始改变你的客户机的源代码,因为这样你就有了一个分支版本,这将使部署和更新你的服务器成为一场噩梦。你最好只是等待一个新版本的客户端软件支持新方法。
mysql源代码如下:https://github.com/mysql

相关问题