Unity连接MySQL失败总结

文章讲述了在Unity项目中遇到的两个问题:一是MySql.Data.dll因缺少Google.Protobuf依赖无法加载,解决方法是找到并添加对应版本的DLL;二是8.0版本后caching_sha2_password认证方法不支持,需修改my.ini文件并重启MySQL服务,最终使用mysql_native_password验证。
摘要由CSDN通过智能技术生成

错误:

Assembly 'Assets/Dlls/MySql.Data.dll' will not be loaded due to errors:
Unable to resolve reference 'Google.Protobuf'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.

原因:缺少dll文件

解决办法:在参考诸多文章之后的解决办法基本都是降低版本,我尝试在MySql.Data.dll文件的同级目录中找一个叫“Google.Protobuf.dll”的文件并放入Unity,成功解决

错误:Authentication method  caching_sha2_password  not supported by any of the available plugins.

原因:MySql8.0版本之后用的密码验证方式不同导致

解决方法:修改my.ini文件的默认验证方式及修改登录账号的验证方式然后重启mysql服务即可,但是我仍然验证失败,尝试很多次之后选择重启电脑(解决)

步骤:在MySQL Server安装目录中修改或者添加my.ini

[mysqld]
default_authentication_plugin=mysql_native_password
default-character-set=utf8 [client]
port=3306 default-character-set=utf8

重点是:

default_authentication_plugin=mysql_native_password

然后在控制台重启MySQL服务:

net stop 服务名
net start 服务名

我的服务名称为MySQL80:

至此完结

Unity连接MySQL数据库可以通过使用MySQL Connector/NET来实现。下面是一些基本步骤: 1. 下载并安装MySQL Connector/NET:首先,你需要从MySQL官方网站下载并安装MySQL Connector/NET。这是一个用于在.NET应用程序中连接和操作MySQL数据库的驱动程序。 2. 导入MySQL Connector/NET到Unity项目:在Unity中,你需要将MySQL Connector/NET的DLL文件导入到项目中。可以将DLL文件直接拖放到Unity的Assets文件夹中。 3. 编写连接代码:在Unity中,你可以使用C#编写代码来连接MySQL数据库。首先,你需要在代码中引入MySQL Connector/NET的命名空间。然后,使用连接字符串来指定数据库连接信息,包括服务器地址、用户名、密码等。最后,使用MySQL Connector/NET提供的类和方法来执行数据库操作,如查询、插入、更新等。 以下是一个简单的示例代码,展示了如何连接MySQL数据库并执行查询操作: ```csharp using System; using MySql.Data.MySqlClient; public class MySQLConnector : MonoBehaviour { private MySqlConnection connection; private string server = "localhost"; private string database = "your_database_name"; private string uid = "your_username"; private string password = "your_password"; void Start() { string connectionString = $"Server={server};Database={database};Uid={uid};Pwd={password};"; connection = new MySqlConnection(connectionString); try { connection.Open(); Debug.Log("Connected to MySQL database!"); // 执行查询操作 string query = "SELECT * FROM your_table_name"; MySqlCommand cmd = new MySqlCommand(query, connection); MySqlDataReader dataReader = cmd.ExecuteReader(); while (dataReader.Read()) { // 处理查询结果 string column1 = dataReader.GetString(0); string column2 = dataReader.GetString(1); Debug.Log($"Column 1: {column1}, Column 2: {column2}"); } dataReader.Close(); } catch (Exception e) { Debug.Log("Error connecting to MySQL database: " + e.Message); } finally { connection.Close(); } } } ``` 请注意,上述代码仅为示例,你需要根据你的实际情况进行修改和扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zirofen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值