关于mysql修改character_set_server = utf8不生效的问题

  1. 安装mysql数据后,web项目连接数据库,执行新增数据,发现插入数据库中的中文变为乱码--> ???????????????(全部变为问号)

  2. 各种百度,都是说复制一个my-default.ini文件,然后     设置服务端的默认字符集,在my.ini的[mysqld]内设置character_set_server = utf8

  3. 然而,我修改之后  查看      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服务即可生效。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐