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版本
8.0.30以上的M有SQL已经取消了utf-8字符集
原因是因为我安装的MySQL版本8.0.31太新,MySQL已经将所有utf-8换成utfbm3,旧版本的MySql.Data.dll不支持这种字符集,所以两个解决方案:
- 降低MySQL的版本
- 提升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
然后就可以正常运行了