200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 设置mysql的字符编码解决中文乱码问题

设置mysql的字符编码解决中文乱码问题

时间:2023-03-15 22:51:23

相关推荐

设置mysql的字符编码解决中文乱码问题

配置说明

mysql5提供了以下几个设置字符集的系统变量:

character_set_client 客户端字符集

character_set_connection 客户端与服务器端连接采用的字符集

character_set_results SELECT查询返回数据的字符集

character_set_database 数据库采用的字符集

乱码问题一般是由于以上几个变量设置错误照成的,所以只要理解这几个变量,就可以告别乱码了。

使用上述变量,要理解这个核心思想:

character_set_client、character_set_connection、character_set_database编码要一致;

character_set_results则保证与SELECT返回的结果与当前程序的编码一致。

我们可以在程序中使用 set names来同时设置character_set_client, character_set_connection, character_set_results这三个系统变量。

例如set names 'utf8'等同于 :

set character_set_client = ‘utf8’

set character_set_connection = ‘utf8’

set character_set_results = ‘utf8’

一般情况下,当数据库与数据库表的字符集为utf8,我们再在程序里设置set names 'utf8’命令,这样就能保证无乱码了,但是,这里还要注意character_set_results变量的值,character_set_results的字符值是用来显示返回给用户的编码的。

例如,你的数据库(character_set_database)用的是utf8的字符集,那么你就要保证character_set_client,character_set_connection也是utf8的字符集。而你的程序也许采用的并不是utf8,比如你的程序用的是gbk,那么你若把character_set_results也设置为utf8的话就会出现乱码问题。此时你应该把character_set_results设置为gbk。这样就能保证数据库返回的结果与你的程序的编码一致。

全局设置,重启失效

设置全局的数据库字符编码,即使基于整个MySQL服务的,当重启MySQL服务的时候,编码依然会变为原来的字符编码

set global character_set_database=gbk;

set global character_ser_server=gbk;

show variables like ‘%char%’;

永久设置

设置永久的字符编码,即需要在配置文件中修改数据库的字符编码

编辑 /etc/f,

在里面加入,已经有[XXX]的,在里面直接加入即可。

[mysqld]

character-set-server=utf8

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

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

参考链接:

/zhaojunjie_dream/article/details/79979672

/xbq8080/p/6572133.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。