在AWS RDS上将MySQL服务器变量collat​​ion_connection设置为utf8_unicode_ci

Par*_*oni 5 mysql collation utf-8 amazon-web-services amazon-rds

所以我的目标是将所有字符集和排序规则设置为utf8utf8_unicode_ci

我正在使用AWS RDS托管MySQL服务器。

香港专业教育学院设置collation_connection variableutf8_unicode_ci参数组的RDS英寸 这就是我在参数组中设置变量的方式

Ive然后重新启动了RDS,当进入MySQL控制台时,它会显示以下变量值。

mysql> show variables like "%character%";show variables like "%collation%";
+--------------------------+-------------------------------------------+
| Variable_name            | Value                                     |
+--------------------------+-------------------------------------------+
| character_set_client     | utf8                                      |
| character_set_connection | utf8                                      |
| character_set_database   | utf8                                      |
| character_set_filesystem | binary                                    |
| character_set_results    | utf8                                      |
| character_set_server     | utf8                                      |
| character_set_system     | utf8                                      |
| character_sets_dir       | /rdsdbbin/mysql-5.6.22.R1/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.01 sec)

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_unicode_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+
Run Code Online (Sandbox Code Playgroud)

我不确定为什么将collation_connection设置为utf8_general_ci

Iqb*_*rol 5

您在此处看到的变量是当前客户端会话的变量:

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_unicode_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+
Run Code Online (Sandbox Code Playgroud)

因此,您需要在启动连接时在要连接的客户端上运行以下命令:

SET collation_connection = 'utf8_unicode_ci';
Run Code Online (Sandbox Code Playgroud)


Ric*_*mes -5

如果您有任何现有表具有不同的CHARACTER SETCOLLATION,则它们需要转换;看ALTER TABLE ... CONVERT TO ...

如果您的代码未连接为utf8,则需要更改。细节是非常特定于语言的(Java vs PHP vs ...)。

而且,如果你正在做 html 页面,他们需要从

<meta charset=UTF-8>
Run Code Online (Sandbox Code Playgroud)

只要你在做这个练习,你就应该一直做下去,这样你就可以处理所有的中文和表情符号: utf8mb4utf8mb4_unicode_520_ci