无法在mysql中存储utf8mb4

无法在mysql中存储utf8mb4,mysql,django,collation,Mysql,Django,Collation,我正在使用django和mysql。我想将unicode utf8更改为utf8mb4以存储表情符号。我确实尝试过更改一些字段。这里是变量- mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; +--------------------------+--------------------+ | Variable_name

我正在使用django和mysql。我想将unicode utf8更改为utf8mb4以存储表情符号。我确实尝试过更改一些字段。这里是变量-

mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 
 'collation%';
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8               |
| character_set_server     | utf8               |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_general_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8_general_ci    |
+--------------------------+--------------------+
10 rows in set (0.00 sec)
现在,当我试图添加表情符号时,它会打印出一个问号。 我还更改了我的数据库和.cnf文件-

DATABASES = {
    ’default’: {
        ’ENGINE’: ’django.db.backends.mysql’,
        ’NAME’: ’example’,
        ’USER’: ’example’,
        ’PASSWORD’: ’example’,
        ’HOST’: ’’,
        ’PORT’: ’’,
        ’OPTIONS’: {’charset’: ’utf8mb4’},
    }
}
还有我的.cnf-

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

不知何故,排序服务器仍然显示utf8编码,排序连接显示utf8mb4_general_ci

它已解决。如果有人知道django中要在model field中使用的任何表情选择器,请告诉我。

如前所述,您的连接变量不能提供完整信息。需要表定义来理解需要执行的操作的范围。如果您的表不支持4字节字符,那么您的连接设置是不相关的。@matigo那么如何做到这一点?我使用django通过使用modelfields创建这些表。