> 文章列表 > mysql创建utf8mb4数据库

mysql创建utf8mb4数据库

mysql创建utf8mb4数据库

背景介绍

MySQL是一款开源的关系型数据库,广泛应用于WEB应用中,目前稳定版本是5.7.x。在使用MySQL的过程中,为了避免乱码和一些字符集无法处理的问题,往往需要使用utf8mb4字符集。

utf8mb4介绍

utf8mb4是UTF8的超集,其支持用户存储与处理的Unicode码位范围更加广泛。utf8mb4通过使用四个字节的UTF-8编码,为每个Unicode字符提供了足够的存储空间(UCS够用1114112个编码,而UTF-8编码能提供至少2^21=2097152个编码空间),以处理任意字符,包括 emoji 表情。相比之下, UTF-8编码的3个字节最多只提供65535个编码空间,这远远不够用。

创建utf8mb4数据库

创建MySQL的utf8mb4数据库需要执行以下步骤:

首先,需要在my.cnf中配置默认字符集为utf8mb4。在[mysqld]下添加如下两行:

character_set_server=utf8mb4

collation_server=utf8mb4_unicode_ci

接着,需要在设置中默认数据库字符集为utf8mb4,该设置会影响新建MYSQL数据库的默认字符集:

SET NAMES utf8mb4;

最后,在创建表的时候指定字符集为utf8mb4

CREATE DATABASE your_awesome_database CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

查询utf8mb4数据库

MySQL在操作utf8mb4字符集的时候,需要注意查询语句中WHERE条件或者JOIN或者ORDER BY或者GROUP BY等语句中可见的数据列一定要带着 COLLATE。如果不指定 COLLATE 的话,就算该列是utf8mb4字符集,也可能引发乱码或者不符合查询条件。hi! 小贴士:在WHERE条件里的数据列需要强制指明 COLLATE utf8mb4_general_ci,如果采用默认unicode字符集(collate utf8mb4_unicode_520_ci),JOIN和GROUP BY语句中不需要额外指定UTF8字符集的编码,可以默认不写。

因此,我们在创建表时需要注意设置好字符集,查询数据时也需要指定正确的COLLATE,否则会出现不可预料的问题。

总结

MySQL是一个强大的数据库系统,在使用中,要注意设置好字符集,解决字符集问题,避免出现乱码问题。其中,utf8mb4是一种非常好的字符集类型,能够满足大部分数据存储以及查询需要,同时还能够兼容业内主流跨平台、跨组件 utf8 编码方式。