You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity连接MariaDB报错:不支持auth_gssapi_client认证方法

解决Unity连接MariaDB时的auth_gssapi_client认证错误

错误详情

MySqlException: Authentication method 'auth_gssapi_client' not supported by any of the available plugins. MySql.Data.MySqlClient.NativeDriver.Open () (at <13314bc2115d4bd2a5d896df29fb7179>:0) MySql.Data.MySqlClient.Driver.Open () (at <13314bc2115d4bd2a5d896df29fb7179>:0) MySql.Data.MySqlClient.Driver.Create (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) (at <13314bc2115d4bd2a5d896df29fb7179>:0)

问题背景

Unity多人游戏开发中,通过官方MySQL Connector/NET的MySql.Data.dll连接MariaDB,仅将该DLL放入Plugins文件夹,尝试过.Net、Mono版本及Windows安装包,均触发上述错误,且找不到my.cnf/my.ini配置文件。

可行解决方案

1. 修改连接字符串强制兼容认证

直接在连接字符串中指定兼容的认证插件,关闭SSL并允许公钥检索,修改后的代码如下:

string connectionString = $"Server={server};Port={port};Database={database};Uid={user};Pwd={password};SslMode=None;AllowPublicKeyRetrieval=true;AuthPlugin=mysql_native_password;";

此方法无需修改服务器配置,优先尝试。

2. 调整数据库用户的认证插件

如果有权限操作MariaDB服务器,执行SQL语句将目标用户的认证方式改为mysql_native_password:

ALTER USER '你的用户名'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

注意:%表示允许所有IP访问,若需限制客户端IP,替换为Unity运行环境的具体IP地址。

3. 替换为MariaDB专属驱动

MySQL官方驱动对MariaDB的兼容性有限,改用MariaDB官方的Connector/NET:

  • 下载完整驱动包,将所有依赖DLL(如MySqlConnector.dll、System.Buffers.dll等)放入Unity的Plugins文件夹,替换原有的MySql.Data.dll
  • 将代码中的命名空间从MySql.Data.MySqlClient改为MySqlConnector,重新适配连接逻辑

4. 配置MariaDB服务器默认认证插件

若能找到MariaDB的配置文件(Linux通常在/etc/mysql/mariadb.conf.d/目录下,文件名可能是50-server.cnf;Windows则在安装目录的conf或data文件夹,可能名为mariadb.ini),添加以下配置:

[mysqld]
default_authentication_plugin=mysql_native_password

保存后重启MariaDB服务,新创建的用户会默认使用兼容认证方式。


内容的提问来源于stack exchange,提问作者user21302417

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 07:17:53