问题描述
从本地的MariaDB数据库切换上服务器上MySQL数据库,查询数据库时竟然报错了。仔细核对了数据库结构、实体定义都未发现问题所在。
最后发现两个数据库的默认编码不一样,MariaDB默认采用的utf8编码;而MySQL采用的utf8mb4编码。
解决方案
1.最简单的方式是修改数据库编码为utf8,但不能强制用户修改已建立好的数据库;
2.查询时,设置编码,如MySqlCommand cmd= new MySqlCommand("set names utf8", conn);
3.升级MySql.Data.dll版本。在官网下载最新版的dll文件,注意对framework版本的匹配。
下载地址:MySQL :: Download MySQL for Visual Studio (Archived Versions)