10bet网址
MySQL内部手册


14.2.3认证方式不匹配

假设客户端以用户U登录,用户使用的认证方式为m

  1. 用于生成身份验证有效负载的服务器默认方法初次握手报文和M不同,还是

  2. 客户端用于生成身份验证应答的方法握手应答报文和M不同

然后出现身份验证方法不匹配,必须使用正确的身份验证方法重新启动身份验证交换。

请注意
  1. 即使客户端和服务器在初始握手中使用相同的身份验证方法,也可能发生不匹配,但这种方法与用户帐户所需的方法M不同。

  2. 在4.1+服务器中,默认的身份验证方法总是安全密码认证.对于mysql客户端,这是可配置的——default-auth选择。不过要注意,只要服务器使用安全密码认证作为它的默认方法,没有必要将客户端的默认身份验证方法更改为任何其他方法。这样做总是会导致方法不匹配和下面的身份验证方法从服务器切换请求。

  3. 客户机要做的一件明智的事情是查看服务器的默认身份验证方法初次握手报文试着用同样的方法来生成握手应答报文.然而,这个行为还没有在当前的mysql客户端库中实现。

如果发生身份验证方法不匹配,服务器向客户端发送认证方法切换请求报文其中包含要使用的身份验证方法的名称和新方法生成的第一个身份验证有效负载。客户端应该切换到请求的身份验证方法,并按照该方法的指示继续交换。如果客户端不知道被请求的方法,应该断开连接。