背景:
在使用Entity Framework 6.0 + MySql 5.7,使用Code First的情况下,如果存储中文字符会报错,然后在MySql Workbench里直接写sql语句也报错。
解决方案:
用`SET character_set_client=’utf8’;
SET character_set_connection=’utf8’;
SET character_set_results=’utf8’;
set character_set_database=’utf8’;
set character_set_server=’utf8’;`
修改字符集,结果C# 程序如果每次启动重新创建数据库,字符集又会恢复原来的样子。
一劳永逸的方法是修改my.ini文件。
文件位置
win10系统的位置是:C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
步骤:
- 打开该文件修改成如下样子后保存:
- 重启服务:
- 重启workbench查看字符集,框起来的部分都变成utf8:
方便复制粘贴
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8
collation-server = utf8_unicode_ci
init_connect=’SET NAMES utf8