Unity连接数据库mysql全过程+可能遇到的问题与解决方案

2024-05-14 1477阅读

目录

一、具备条件

二、unity连接mysql

三、问题总结


一、具备条件

1. Mysql安装完成

        安装完成后需要查看mysql的版本,打开终端(管理者身份运行),输入以下语句登录mysql,查看MySQL版本;可以看到我下载的版本是 5.7.38;

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

2. MySQL Connector/NET下载

目的:为了搭建unity连接mysql的环境,需要其中的 Mysql.Data.dll 文件

下载地址:

MySQL :: Download MySQL Connector/NET (Archived Versions)Unity连接数据库mysql全过程+可能遇到的问题与解决方案https://downloads.mysql.com/archives/c-net/

注意:根据自己下载的mysql版本去选择下载MySQL Connector/NET版本,例如:

我的mysql版本是5.7.38,下载的MySQL Connector是5.2.7(也可以下载其他较低版本);否则会出现版本不匹配而无法运行的问题。

 下载后压缩包里获得 Mysql.Data.dll 文件

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

如果不是压缩包,找到 MySQL Connector的下载地址,默认为:

C:\Program Files (x86)\MySQL

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.24\Assemblies\v4.5.2

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

3. unity安装完成,本人使用的版本是2020.3.39f1c1;

4.Visual Studio 安装完成,本人使用的版本是 Microsoft Visual Studio Community 2022;

二、unity连接mysql

1. dll文件准备(dll动态链接库准备)

(1)unity项目不需要发布需要的dll文件(本文以此作为教程案例):

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

文件来源:

 Mysql.Data.dll:在官网下载

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

(2)unity项目需要发布时需要的dll文件:

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

文件来源:(Unity下载地址)

地址:~\Unity\2020.3.39f1c1\Editor\Data\MonoBleedingEdge\lib\mono\unityjit

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

Mysql.Data.dll:在官网下载

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

2. unity项目准备

第一步:创建一个新的unity项目;

第二步:在Assets文件夹下创建一个新的文件夹(Plugins),然后将准备的dll文件放置进去(这里我作为测试只放 Mysql.Data.dll)

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

第三步:在Assets文件夹下创建一个新的文件夹(Scripts),然后创建一个C#文件:ConnectMySql

using MySql.Data.MySqlClient;
using System.Data;
using UnityEngine;
public class ConnectMySql : MonoBehaviour
{
    void Start()
    {
      
        //数据库地址、端口、用户名、数据库名、密码
        string sqlSer = "server = 127.0.0.1;port = 3306;user= myroot;database = testdb;password = myroot;charset=utf8";
        //建立连接
        MySqlConnection conn = new MySqlConnection(sqlSer);
        try
        {
            conn.Open();
            Debug.Log("------链接成功------");
            //sql语句
            string sqlQuary = "SELECT * FROM test;";
            Debug.Log(sqlQuary);
            MySqlCommand comd = new MySqlCommand(sqlQuary, conn);
            MySqlDataReader reader = comd.ExecuteReader();
            while (reader.Read())
            {
                //通过reader获得数据库信息
                Debug.Log(reader.GetString("t_name"));
            }
        }
        catch (System.Exception e)
        {
            Debug.Log("Error:" + e.Message);
        }
        finally
        {
            conn.Close();
        }
    }
    void Update()
    {
    }
}

注意: 代码中的信息

数据库地址(server ):本地填写localhost即可

数据库用户名(user):myroot

数据库密码(password):myroot       !!!!注意密码不要含有大写字母,否则无法获取数据!!!

端口号(port) :3306

数据库名字(database ):testdb

表:test

属性:t_name

        各位同志自行修改信息! 

第四步:unity中创建一个空对象,将该C#文件挂载,然后运行unity项目查看效果

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

三、问题总结

1. 问题一: 

Assembly 'Assets/Plugins/MySgl.Data.dll' will not be loaded due to errors:Unable to resolve reference 'Google.Protobuf. ls the assembly missing or incompatible with the current platform?

原因:下载的Mysql.Data.dll 版本与 MYSQL 不匹配Unity连接数据库mysql全过程+可能遇到的问题与解决方案

解决方案:尝试下载版本低的匹配mysql版本

先将原来的版本删除,打开控制面板卸载,否则无法成功安装(如果是压缩包则直接替换dll文件即可)

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

重新下载匹配MYSQL版本的MySQL Connector,然后获取dll文件替换原先的dll文件。

MySQL :: Download MySQL Connector/NET (Archived Versions)Unity连接数据库mysql全过程+可能遇到的问题与解决方案https://downloads.mysql.com/archives/c-net/

2. 问题二:

 The given key was not present in the dictionary.

原因:可能是连接数据库mysql的以下语句出现大写字母

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

解决措施:修改该语句的字母大写变为小写即可,如果是密码出现大写字母,请修改密码;

修改成功连接成功效果:

Unity连接数据库mysql全过程+可能遇到的问题与解决方案

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]