【发布时间】:2017-10-05 10:10:24
【问题描述】:
从昨天开始我就在这个问题上失去理智了。
我正在尝试将我的 MySQL 数据库从 utf8 转换为 utf8mb4。为此,我关注了这些站点/线程:https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4、Cannot store emoji in database、Change MySQL default character set to UTF-8 in my.cnf? 等。
我的数据库似乎有一个utf8mb4_unicode_ci collation,正如预期的那样,她的所有表也有。
然而,当我继续 SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; 时,我得到:
#With a Root access
Variable_name Value
character_set_client utf8 #expecting utf8mb4
character_set_connection utf8 #expecting utf8mb4
character_set_database utf8mb4 #good
character_set_filesystem binary #good
character_set_results utf8 #expecting utf8mb4
character_set_server utf8mb4 #good
character_set_system utf8 #expecting utf8mb4
collation_connection utf8_general_ci #expecting utf8mb4_unicode_ci
collation_database utf8mb4_unicode_ci #good
collation_server utf8mb4_unicode_ci #good
#With a standard user access
Variable_name Value
character_set_client utf8 #expecting utf8mb4
character_set_connection utf8mb4 #good
character_set_database utf8mb4 #good
character_set_filesystem binary #good
character_set_results utf8 #expecting utf8mb4
character_set_server utf8mb4 #good
character_set_system utf8 #expecting utf8mb4
collation_connection utf8mb4_unicode_ci #good
collation_database utf8mb4_unicode_ci #good
collation_server utf8mb4_unicode_ci #good
我设置了一个像这样的/etc/mysql/conf.d/90-my.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
init-connect = 'SET collation_connection = utf8mb4_unicode_ci'
init-connect = 'SET NAMES utf8mb4'
我的 MySQL 版本是 5.5.54,全部设置在 debian 7 中。
有没有人能帮帮我?
感谢您的帮助,抱歉我的英语不好......
编辑
有趣的事实:当我检查内联命令中的变量时,我得到了这个:
mysql> show variables like "%character%";
+--------------------------+----------------------------+
| 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 | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
当我与 phpmyadmin(非超级用户访问)核实时,我仍然有 utf8 用于 character_set_client 和 character_set_results
【问题讨论】: