Unity3D 2021连接MySQL 8.0遇TLS认证失败问题求助
解决方案
1. 强制指定TLS版本
MySQL 8.0默认要求TLS 1.2及以上版本,Unity内置TLS可能与驱动存在兼容问题,可在连接字符串中显式指定TLS版本:
string connectionString = "Server=你的服务器地址;Database=你的数据库;Uid=用户名;Pwd=密码;SslMode=Required;TlsVersion=TLS1.2";
需确保SslMode设为Required,同时明确TlsVersion为TLS1.2。
2. 调整MySQL服务器SSL配置
若服务器端SSL设置过于严格,可修改配置文件(Linux为my.cnf,Windows为my.ini):
- 注释
ssl-ca、ssl-cert、ssl-key等强制SSL的配置项,或临时设置require_secure_transport=OFF(仅测试环境使用,生产环境不建议) - 修改后重启MySQL服务再测试连接
3. 匹配兼容的MySql.Data版本
Unity 2021默认使用.NET Standard 2.1,建议选用MySql.Data 8.0.28及以上版本,且需导入适配该框架的dll文件。注意不要混用不同版本的MySQL相关dll(如同时导入MySql.Data和MySqlConnector)。
4. 切换Unity的TLS实现模式
在Unity编辑器中依次打开Edit > Project Settings > Player > Other Settings,找到Configuration下的SSL/TLS Implementation,将其从Native TLS改为Legacy TLS,重启编辑器后重新测试。
5. 配置SSL证书(Windows平台)
若使用Windows系统,需确保已安装MySQL服务器的SSL证书,也可在连接字符串中直接指定证书路径:
string connectionString = "Server=你的服务器地址;Database=你的数据库;Uid=用户名;Pwd=密码;SslMode=Required;CaCertificateFile=证书文件路径.pem";
内容的提问来源于stack exchange,提问作者nate77
相关产品推荐
相关产品推荐

