ceacer 2 已发布 1月28号 分享 已发布 1月28号 MySQL中的字符集有两个级别概念,分别是服务器级别和客户端级别。 Table of Contents 1. 服务器级别 服务器字符集指的是服务器用来存储和处理数据的字符集。在MySQL中,可以在启动MySQL服务的时候指定服务器字符集,也可以在配置文件中进行设置。服务器级别的字符集设定主要影响以下内容: 存储字符数据时所采用的字符编码方式; SQL语句中的字符串常量的编码方式; 数据库中表、列名的编码方式。 2. 客户端级别 客户端字符集指的是客户端用来编码和解码数据的字符集。在MySQL中,客户端可以连接多个服务器,每个服务器都可以拥有不同的字符集。客户端级别的字符集设定主要影响以下内容: 连接服务器时采用的字符编码方式; SQL语句中的字符串常量的编码方式; 查询结果返回的字符串的编码方式。 因此,如果服务器和客户端的字符集不同,就可能导致出现乱码或数据不能正常存储和读取等问题。 在实际应用中,我们需要根据数据库设计和应用场景的需要来选择合适的字符集,并注意设置服务器和客户端的字符集,目的是确保所储存和查询的数据的正确无误。 问题解析 测试环境的数据库中有些数据库表的CHARSET=utf8,还有些是CHARSET=utf8mb4。我们期望修改数据库表的CHARSET=uft8mb4。于是执行下面语句: alter table <表名> character set utf8mb4; 再次查看建表语句时发现,表的DEFAULT CHARSET修改成功,但是字段的CHARSET还是保留原来的utf8。如果想修改表、字段的CHARSET时,应该执行下面语句: ALTER TABLE <表名> CONVERT TO CHARACTER SET utf8mb4; 避坑:请大家一定要使用正确的数据库表字符集修改语句。 评论链接 在其他网站上分享 更多分享选项...
推荐帖
创建账户或登录以发表评论
您需要成为会员才能发表评论
创建一个帐户
在我们的社区注册一个新账户。很简单!
注册新账户登入
已有账户?在此登录
立即登录