热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Unity与MySQL连接过程中出现的新挑战及解决方案探析

上次用完mysql就给卸载了,今天刚重新安装了一个,下载的安装包和版本为mysql-installer-community-8.0.21.0,应该是比我上次用的新;unity版本为2019.3.0f6

上次用完mysql就给卸载了,今天刚重新安装了一个,下载的安装包和版本为mysql-installer-community-8.0.21.0,应该是比我上次用的新;unity版本为2019.3.0f6;

首先准备一个unity项目用来连接数据库,下面一步就是:
往项目assets文件夹中放入一些dll文件,上次在这一步稀里糊涂的,哪些必须哪些不必也没搞清楚,我在Assets下建了一个Plugins文件夹存这些放进来的dll
大概需要导入的dll文件
其中MySql.Data来自你的mysql安装目录,我的是C:\Program Files (x86)\MySQL\Connector NET 8.0\Assemblies\v4.5.2 这里面,直接复制进去,
注意,版本号要注意,这次我下载的比较新的mysql这个复制到项目中在unity里显示的,最下面那个Assembly Info里是Targets .NET 4.x,对于我的这个unity是不能使用的,控制台一直会报两个关于mysql.data的错,我把以前项目里的拿过来放到现在正在用的这个项目之后是3.5的,是可以用的】
注意(* ̄(oo) ̄)
第二个遇到的新问题是,这么一个错误:Client does not support authentication protocol requested by server,直接去搜发现遇到这个问题的基本都是navicat 连接 mysql的时候,大概原因是因为mysql8.0的密码加密规则改了,这我也能理解为什么是这次出现的新问题了,我新安装的就是8.0的,解决方案是,打开mysql控制台,输入这么3句话

use mysql;
alter user '用户名'@'主机名' identified with mysql_native_password by '你的密码';
flush privileges;

别忘记分号;

第三个遇到的新问题报的错是:the given key was not present in the dictionary,我是用的插入语句,字面意思大概是插入是使用的关键字在表里没有,可是明明写的是对的,
解决方案:在数据库连接字符串最后规定一下字符编码格式

string constr = "server=localhost;Database=mydb;User Id=root;password=12345;charset=utf8;";

即在最后加一句charset=utf8,问题可以解决。
2020年7月16日13点18分


推荐阅读
author-avatar
cuishy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有