我正在尝试将我的 Unity 多人游戏与我的 MariaDB 连接,但出现错误:
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)
这是我的
Database.cs
文件:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MySql.Data.MySqlClient;
using UnityEditor.Experimental.GraphView;
public class Database : MonoBehaviour
{
private string server;
private string database;
private string user;
private string password;
private string port;
public void Database_Initialize()
{
server = "IP-ADDRESS";
port = "PORT";
database = "DB_NAME";
user = "USERNAME";
password = "PASSWORD";
// Use interpolated strings to insert the values from variables
string connectionString = $"Server={server};Port={port};Database={database};Uid={user};Pwd={password};";
// Use "using" pattern to make sure everything is disposed
using (var connection = new MySqlConnection(connectionString))
{
connection.Open();
string query = "INSERT INTO user (Username) VALUES ('User1')";
using (MySqlCommand command = new(query, connection))
{
command.CommandTimeout = 60;
// Use ExecuteNonQuery to execute the INSERT.
// recordsChanged should be 1 afterwards
int recordsChanged = command.ExecuteNonQuery();
}
}
}
}
当我在 www 上搜索答案时,我只会得到类似:“编辑
my.cnf
或 my.ini
文件”的内容,但我没有。
我在这个网站上下载了我的 Conenctor:https://dev.mysql.com/downloads/connector/net/ 并将 MySql.Data.dll 放在我的 Plugins 文件夹中。我尝试使用 .Net & Mono- 以及 Microsoft Windoes 安装。
两者都显示相同的错误。
有什么想法吗? 提前致谢!
MySQL Connector/.NET 不支持 auth_gssapi_client 身份验证,它仅在连接到 MySQL Enterprise 服务器时提供对 kerberos 身份验证的支持。
你必须使用 mysqlconnector for ADO.net 它提供对 gssapi 身份验证的支持