跳到内容
[广告]欧美亚马逊SSN账号、炮灰号开售 ×

MySQL修改表字符集的正确步骤是怎样的?有哪些注意事项?


推荐帖

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;

避坑:请大家一定要使用正确的数据库表字符集修改语句。

评论链接
在其他网站上分享

创建账户或登录以发表评论

您需要成为会员才能发表评论

创建一个帐户

在我们的社区注册一个新账户。很简单!

注册新账户

登入

已有账户?在此登录

立即登录
  • 告诉你朋友

    喜欢 西塞网络科技?告诉朋友!
×
×
  • 创建新的...

重要信息

我们在您的设备上放置了 cookies,以帮助改善本网站。您可以调整您的 cookie 设置,否则我们会假定您可以继续

版权所有 © 2018-2025 西塞网络科技
粤公网安备44200002444913号