我正在集群中使用aurora rds(mysql),无法插入emoji的。我要插入的列具有排序规则:
utf8mb4-utf8mb4\u unicode\u ci
我尝试过使用客户机和mysql工作台来插入查询,但是在这两种情况下我都看到了????在田野里。
我已经更新了表的默认字符集:utf8mb4和默认排序规则:utf8mb4\u unicode\u ci
但还是得到了???而不是表情符号
编辑1:
我试图编辑集群的参数组,并将所有字符集值设置为utf8mb4,将所有排序规则值设置为utf8mb4\u unicode\u ci,但仍然不起作用。
2条答案
按热度按时间4urapxun1#
更改表的默认字符集不会更改任何现有列。你可以跑了
SHOW CREATE TABLE MyTable
看看有什么不同。例如,我们可以创建一个带有老式字符集的表:
接下来,我们更改表的默认值,但我们看到这不会更改列。现有列会自动获得一个选项,显示它实际用于字符集的内容,因为它现在不同于表默认值:
默认值用于随后添加到表中的列:
要转换现有列,请使用“转换为字符集”。这将重写表,并在需要时转换每列的现有数据:
现在两个列都没有说明各自的字符集,因为它们与表的默认值匹配。
ha5z0ras2#
群集参数组应设置以下选项:
字符集\客户端:utf8mb4
字符集\连接:utf8mb4
字符集数据库:utf8mb4
字符集服务器:utf8mb4
排序规则\u连接:utf8mb4 \u unicode \u ci
排序规则\u服务器:utf8mb4 \u unicode \u ci
可能需要在更新后重新启动示例。连接到群集时,需要为连接设置正确的排序规则,如下所示:
如果你跑了
SHOW VARIABLES LIKE "%collation%"
在此之后,您将看到三个变量都具有正确的排序规则(utf8mb4\u unicode\u ci)。您还需要将表和列转换为正确的字符集和排序规则,这在dba stack exchange上已经得到了回答:如何在mysql 5.5中轻松地将utf8表转换为utf8mb4