MySQL字符集和排序规则详解

坦率地说,MySQL的字符集和校对规则就像语言翻译和语法规则。
前者决定数据如何存储,后者决定字符串如何比较。

部署: 我们先来说说最重要的事情。
字符集配置有四个级别:实例、数据库、表和列。
在我去年运行的一个电子商务项目中,我发现表级设置被覆盖,我必须从实例启动更改。
还有一点是,虽然InnoDB、MyISAM、Memory都支持字符集,但是Memory引擎很少被使用,因为内存数据很难恢复。
还有其他重要细节,例如 utf8 mb4 字符集。
使用 show Collat​​ion where charset='utf8 mb4 ';您会发现超过 2 0 种排序规则,包括 utf8 mb4 _general_ci(通常不区分大小写)和 utf8 mb4 _bin(二进制区分大小写)。

一开始我以为可以自由选择排序规则,后来发现项目使用了错误的规则,中文排序乱码,于是我用utf8 mb4 _unicode_ci解决了。
等等,还有别的事。
客户端连接时,必须同步三个参数:character_set_client、character_set_connection 和 collat​​ion_connection。
去年我有一个项目,客户端使用gbk,服务器使用utf8 mb4 ,导致查询结果乱码。

请注意结尾。
更改字符集后必须重新启动服务。
否则你会看到像“%character%”这样的变量。
旧值仍将显示。
老实说,这很令人困惑,但使用 utf8 mb4 而不是 utf8 是一个值得尝试的选择。

MySQL如何查看数据库编码格式

对于MySQL来说,检查数据库编码格式是非常关键的一步。
你首先要了解两种方法,一种是通过命令行,一种是通过Navicat。
关于命令行,首先要打开命令提示符,输入连接MySQL的用户名和密码,然后运行SQL语句,即showcreateddatabase。
请记住将其替换为您的数据库名称。
如果你看返回的信息,字符集和排序规则都隐藏在里面。
再看一下,如果是Navicat,打开它,连接服务器,找到你的数据库,右键,看属性,信息就有了。

两种方法都有各自的优点。
命令行在服务器端操作方便,无需界面即可使用; Navicat 具有图形界面,一目了然,适合开发环境。
说到这里,字符集不一致会引起大大小小的问题,数据库乱码更是让人头疼。
因此,数据库、表、字段、应用程序的字符集设置必须标准化。
请记住,如果不一致,代码就会失真。
对此千万不要大意。