【Unity导入MySql.Data.dll报错】

Unity导入MySql.Data.dll报错

错误的起因,想用Unity对MySQL操作。操作参考了勤诚勇毅的帖子
链接: https://blog.csdn.net/qq_43333567/article/details/122494042.
感觉帖子写的很好。但实际导入工程报了如下错误:
“KeyNotFoundException: The given key ‘utf8mb4’ was not present in the dictionary”

在Navicat里查看MySQL版本
在Navicat里查看MySQL版本

8.0.30以上的M有SQL已经取消了utf-8字符集
8.0.30以上的M有SQL已经取消了utf-8字符集
原因是因为我安装的MySQL版本8.0.31太新,MySQL已经将所有utf-8换成utfbm3,旧版本的MySql.Data.dll不支持这种字符集,所以两个解决方案:

  1. 降低MySQL的版本
  2. 提升Unity工程里的MySql.Data.dll版本

降低版本就先把本机的MySQL卸载干净,再去下载一个旧版本的MySQL,安装。
本文着重讲解如何提高MySql.Data.dll版本,
本文操作环境Unity 2021.3.9f1c1,VS2022,Navicat Premium 11.0.10,MySQL 8.0.31

1.把Unity的.Net换成全集

如果你的Unity版本和本文的版本不一致的,去下图的路径看看你的Unity版本中.Net的最新版本是什么,我这的最新的.Net到4.8

2.去MySQL的安装目录找到MySql.Data.dll等共8个dll,复制到Unity的Plugins里
注意版本,不然Unity一定错给你看!
我这里选择的是v4.8文件夹里的文件
在这里插入图片描述

经测试,这7个都是新版MySql.Data.dll所引用的类库,所以都复制进工程吧
在这里插入图片描述
Unity会自己再生成几个Data
在这里插入图片描述
然后就可以正常运行了
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_39142676/article/details/127366605