关于mysql修改character_set_server = utf8不生效的问题
-
安装mysql数据后,web项目连接数据库,执行新增数据,发现插入数据库中的中文变为乱码--> ???????????????(全部变为问号)
-
各种百度,都是说复制一个my-default.ini文件,然后 设置服务端的默认字符集,在my.ini的[mysqld]内设置character_set_server = utf8
-
然而,我修改之后 查看 show variables like 'char%';
修改之前是这样
修改之后是这样:
如果想要修改上图中哪个 cmd命令执行:set character_set_xxx = utf8;
4、然而我重启了mysql之后,character_set_server的编码格式又变回去了,(因为不重启mysql服务,所做的修改不生效。)
5、这是因为mysql的注册表中的路径指向的并不是我复制创建的那个my.ini文件
此时,我们执行cmd命令,查看注册表
路径:如下图:
右键点击ImagePath,点击修改,复制路径出来,会发现指向ProgramData文件下的my.ini
与我复制的my.ini不是一个文件,所以修改了之后重启mysql服务也不会生效。
因为它加载的根本就不是你修改的那个文件。
我们去修改注册表下那个my.ini文件中的编码格式,然后重启mysql服务即可生效。