报错信息如图:
根据报错信息,看起来是MySQL客户端不支持MySQL服务器请求的身份验证协议,建议考虑升级MySQL客户端版本或使用支持请求的身份验证协议的MySQL客户端。
MySQL服务器支持多种身份验证协议,其中包括旧版协议和新版协议。新版协议在安全性方面更加强大,但需要使用支持该协议的MySQL客户端才能进行连接。
如果您正在使用旧版MySQL客户端,可以尝试升级到最新版本的MySQL客户端,并使用支持新版协议的驱动程序进行连接。如果您正在使用最新版本的MySQL客户端,可以检查MySQL服务器的配置,确保MySQL服务器已配置为使用新版协议进行身份验证。
此外,还可以尝试在连接字符串中指定使用新版协议进行身份验证。可以将"AllowPublicKeyRetrieval=True"和"AuthenticationPlugins=authentication_windows_client"添加到连接字符串中,以指定使用新版协议进行身份验证。示例如下:
string connectionString = "Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;AllowPublicKeyRetrieval=True;AuthenticationPlugins=authentication_windows_client;";
如果上述解决方案均无法解决问题,请尝试在Unity中输出更详细的错误信息,以便更好地定位问题。可以使用try-catch语句捕获异常,并在catch块中输出详细的错误信息。
一旦运行后,会报出一个错误:
Authentication method ‘caching_sha2_password’ is not supported.
因为最新的数据库更改了加密方式,mysql8.0以后的版本从原来的 mysql_native_password 更改为 caching_sha2_password
我们需要改回去,不然会报上面的错误。
修改方法: