一、连接准备
1. MySql.Data插件
- Visual Studio中下载
- 打开Visual Studio_项目_管理NuGet程序包
- 在浏览中搜索MySql.Data并下载
2.MySql官网下载插件
- 前提已经安装mysql,然后到官网下载以下三个东西(最好不要使用最新版本)
- MySQL Connector Net
- Connector ODBC 8.0
- MySQL for VIsaul Studio
- 下载完直接双击(傻瓜式)安装即可
3.连接测试(可选)
打开Visual Studio_视图_服务器资源管理器
在弹出的窗口,右键数据连接,选择添加连接
选择MySQL Database,点击继续
输入数据库地址、账号、密码、数据库名,然后点击测试连接
弹出对话框“测试连接成功”,则可进入下一步
二、Unity链接MySql
1.在Unity中导入dll文件
- dll如下(共五个)
- 如果不打包exe文件,仅需导入最后一个dll文件即可
- 如果不打包exe文件,仅需导入最后一个dll文件即可
在路径:C:\Program Files (x86)\MySQL\MySQL Connector Net6.8.7\Assemblies\v2.0中找到MySql.Data.dll导入Unity中Plugins文件夹下
对应Unity的安装目录:Unity\Editor\Data\MonoBleedingEdge\lib\mono\unityjit;找到其余dll文件
2. 创建数据库,内容如下:
3. 编写查询脚本进行测试
public void InquireMysql(){//数据库地址、用户名、密码、数据库名string sqlSer = "server = localhost;port = 3306;database = test;user = root;password = 123456";//建立连接MySqlConnection conn = new MySqlConnection(sqlSer);try{conn.Open();Debug.Log("------链接成功------");//sql语句string sqlQuary = " select * from mytable";MySqlCommand comd = new MySqlCommand(sqlQuary, conn);MySqlDataReader reader = comd.ExecuteReader();while (reader.Read()){//通过reader获得数据库信息Debug.Log(reader.GetString("user_name"));Debug.Log(reader.GetString("user_password"));}}catch (System.Exception e){Debug.Log(e.Message);}finally{conn.Close();}}
运行结果:
4. 编写插入脚本进行测试
- 修改,删除处理在此脚本基础上修改SQL语句即可
public void ChangedMysql(){//数据库地址、用户名、密码、数据库名string sqlSer = "server = localhost;port = 3306;database = test;user = root;password = 123456";MySqlConnection conn = new MySqlConnection(sqlSer);try{conn.Open();Debug.Log("------链接成功------");string sqlQuary = "insert into mytable(user_name,user_password) values (@user_name, @user_password)";MySqlCommand comd = new MySqlCommand(sqlQuary, conn);comd.Parameters.AddWithValue("@user_name", "用户名");comd.Parameters.AddWithValue("@user_password", "密码");comd.ExecuteNonQuery();}catch (System.Exception e){Debug.Log(e.Message);}finally{conn.Close();}}
运行结果:
三、问题处理
1.打包后无法连接数据库
- 首先确认所需的五个dll文件是否已经全部导入
- 在Unity中去修改Api Compatibility Level为.NET 4.x
路径:Project Setting->player->othersetting->Configuration->Api Compatibility Level
- 如果Unity版本是2018及以前的,还需要导入System.Data.dll和System.Drawing.dll两个文件;