目录
一、具备条件
二、unity连接mysql
三、问题总结
一、具备条件
1. Mysql安装完成
安装完成后需要查看mysql的版本,打开终端(管理者身份运行),输入以下语句登录mysql,查看MySQL版本;可以看到我下载的版本是 5.7.38;
2. MySQL Connector/NET下载
目的:为了搭建unity连接mysql的环境,需要其中的 Mysql.Data.dll 文件
下载地址:
MySQL :: Download MySQL Connector/NET (Archived Versions)https://downloads.mysql.com/archives/c-net/
注意:根据自己下载的mysql版本去选择下载MySQL Connector/NET版本,例如:
我的mysql版本是5.7.38,下载的MySQL Connector是5.2.7(也可以下载其他较低版本);否则会出现版本不匹配而无法运行的问题。
下载后压缩包里获得 Mysql.Data.dll 文件
如果不是压缩包,找到 MySQL Connector的下载地址,默认为:
C:\Program Files (x86)\MySQL
C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.24\Assemblies\v4.5.2
3. unity安装完成
4.Visual Studio 安装完成
二、unity连接mysql
1. dll文件准备(dll动态链接库准备)
(1)unity项目不需要发布需要的dll文件(本文以此作为教程案例):
文件来源:
Mysql.Data.dll:在官网下载
(2)unity项目需要发布时需要的dll文件:
文件来源:
地址:\Unity\2020.3.39f1c1\Editor\Data\MonoBleedingEdge\lib\mono\unityjit
Mysql.Data.dll:在官网下载
2. unity项目准备
第一步:创建一个新的unity项目;
第二步:在Assets文件夹下创建一个新的文件夹(Plugins),然后将准备的dll文件放置进去(这里我作为测试只放 Mysql.Data.dll)
第三步:在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()
{
}
}
注意: 代码中的信息
数据库地址:本地填写localhost即可
数据库用户名:myroot
数据库密码:myroot !!!!注意密码不要含有大写字母,否则无法获取数据!!!
端口号:3306
数据库名字:testdb
表:test
属性:t_name
各位同志自行修改信息!
第四步:unity中创建一个空对象,将该C#文件挂载,然后运行unity项目查看效果
三、问题总结
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 不匹配
解决方案:尝试下载版本低的匹配mysql版本
先将原来的版本删除,打开控制面板卸载,否则无法成功安装(如果是压缩包则直接替换dll文件即可)
重新下载匹配MYSQL版本的MySQL Connector,然后获取dll文件替换原先的dll文件。
MySQL :: Download MySQL Connector/NET (Archived Versions)https://downloads.mysql.com/archives/c-net/
2. 问题二:
The given key was not present in the dictionary.
原因:可能是连接数据库mysql的以下语句出现大写字母
解决措施:修改该语句的字母大写变为小写即可,如果是密码出现大写字母,请修改密码;
修改成功连接成功效果:文章来源:https://www.toymoban.com/news/detail-768034.html
文章来源地址https://www.toymoban.com/news/detail-768034.html
到了这里,关于Unity连接数据库mysql全过程+可能遇到的问题与解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!