mysql默认的编码是不支持中文的,需要改成utf8编码格式。
而我使用的Pomelo.EntityFrameworkCore.MySql组件生成mysql库和表,他是使用默认编码的。
网上大多说修改配置文件Character Set=utf8,我这里测试无效。
所以就想到修改mysql的默认编码。
在mysql安装目录下找到my.ini(我这里是这个名字,命名可以修改。只要创建服务的时候指定你自己的配置文件命名就ok)
[client]
default-character-set=utf8mb4
[mysqld]
basedir=D:\mysql-5.7.-winx64
datadir=D:\mysql-5.7.-winx64\data
port= character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
default-character-set=utf8mb4
修改配置文件如上。重启mysql服务, cmd输入
net stop mysql && net start mysql
运行程序,重新生成库和表。
发现无效。生成的编码格式并不是utf8
执行mysql查询命令:
show variables like '%char%';
可以发现设置是成功了的。当时就心态就崩了,
然后执行命令手动创建一个库
create database encodtest
编码设置是成功了的。
找了好久解决办法。突然看到一个将mysql服务卸了重装的办法,死马当活马医吧!
首先,停止mysql服务
net stop mysql
然后卸载
sc delete mysql
最后进入mysql安装的bin目录执行
mysqld install
然后启动服务
net start mysql
重新运行程序。成功解决。
不知道为什么我的必须要重装服务。。