怎么永久设置 MySQL是utf8编码?

问题遇到的现象和发生背景

C++输出MySQL里的中文乱码,我认为是MySQL默认GBK的问题

我的解答思路和尝试过的方法

set character_set_client=utf8
set character_set_connection=utf8
set character_set_results=utf8
上面的命令试过了,只是当前窗口有效,重开无效
my.ini client增加过default_character-set=utf8之类的了
怎么永久设置 上面三个是utf8?

img


img

set后面加persist ,比如 set persist character_set_results=utf8

set后面加GLOBAL ,比如 set GLOBAL character_set_results=utf8

mysql应该是在win下安装的对吧,更改一下my.cnf 配置文件就可以了。
如何找到my.cnf 呢,
在cmd窗口输入:mysql --help
看到有一段话:Default options are read from the following files in the given order:
我的是:
C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf C:\88-mysql\mysql-8.0.26-winx64\my.ini C:\88-mysql\mysql-8.0.26-winx64\my.cnf

img

逆序第一个一般就是你的配置文件的位置,在里面变更或者新增以下文本:
[mysqld]

character-set-server=utf8

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

然后重启数据库即可,service mysql restart

希望可以帮助到你 :)