前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL关于character_set 设置为uft8问题

MySQL关于character_set 设置为uft8问题

作者头像
酒馆丁老师
发布2020-09-08 14:38:40
11.4K0
发布2020-09-08 14:38:40
举报

MySQL中使用中文时,你得改下字符集,不然会乱码。

目录

1. MySQL中有关character_set变量的含义

2. 使用命令设置character_set

3. 修改配置文件永久修改character_set

1

MySQL中有关character变量

在MySQL中有关character_set变量总共8个,分别代表以下含义:

代码语言:javascript
复制
 #客户端连接时,由客户端发送给server端设置
character_set_client   
 #客户端连接时,由客户端发送给server端设置
character_set_connection 
# 当前所在的数据库字符集,如果没有切换到其他数据库,则character_set_database显示的和character_set_server一致。
character_set_database   
#把os上文件名转化成此字符集,即把 character_set_client转换character_set_filesystem,默认binary是不做任何转换的
character_set_filesystem  
#客户端连接时,服务器返回给客户端的结果字符集
character_set_results
#数据库字符集
character_set_server
#只读数据不能更改变,
character_set_system
# 一个目录而已
character_sets_dir

总的来说:

  1. character_set_server 与character_set_database 设置服务器端的字符集,并且character_set_database 会慢慢在8.0之后的版本去掉。
  2. character_set_client character_set_connection character_set_results这3个参数值是由客户端每次连接进来设置的,和服务器端没关系。从实际上可以看到,当客户端连接服务器的时候,它会将自己想要的字符集名称发给mysql服务器,然后服务器就会使用这个字符集去设置character_set_client character_set_connection character_set_results这三个值。如cmd是用gbk,而SQLyog是用utf8,navicat 是utfmb4. 注意:mysql的utf8不是真正的utf8,是一个伪UTF8,utf8mb4才是真正的utf8,建议使用utf8mb4。

win10 下普通cmd,默认是GBK

在显示 utf8中文数据时会乱码,但是你用cmd告诉MySQL服务器器我使用的是GBK,你要给我返回GBK数据就可以正常显示了,如下图。这也是为什么PHP,Java,Python等编程连接数据库时都要指定数据库的结果集。

2

使用命令设置character_set

使用命令设置可以实现,但是当数据库重启时,失效。

代码语言:javascript
复制
#设置返回时的结果集
set character_set_results = gbk; 
set character_set_database=utf8;  
set character_set_server=utf8;  

3

修改配置文件永久修改character_set

windows下修改my.ini,一般存放路径C:\ProgramData\MySQL\MySQL Server 5.7;

Linux下 修改my.cnf,一般存放路径:/etc/mysql/

修改内容如下,附加的形式:

代码语言:javascript
复制
[client]  
default-character-set=utf8  
[mysqld]
character-set-server=utf8  

【福利 资源 !!!】,关注公众号回复 mysql,获取MySQL 5.7 从入门到精通

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 丁老师的技术随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档