【发布时间】:2018-06-08 09:28:43
【问题描述】:
我已按照here 的建议使用以下命令将我的 mysql 数据库的字符集和排序规则从 latin1 转换为 utf8mb4。
ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
为了检查转换是否正确完成,我运行了以下命令。
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%'
OR Variable_name LIKE 'collation%'
输出是
虽然 character_set_client、character_set_connection、character_set_database、character_set_results 现在是 utf8mb4,但 character_set_filesystem 是二进制,而 character_set_server 仍然是拉丁文。这些到底是什么以及为什么它仍然不在 utf8mb4 中?
同样,collation_connection 和 collation_database 在 utf8mb4_unicode_ci 中,但 collation_server 仍然在 latin1_swedish_ci 中
【问题讨论】:
-
做
SELECT HEX(col) ...看看一些非英文字符的样子。这将有助于验证转换是否正确。