問題描述
從本地的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)