在Windows和iis上运行my.ini配置时,mysql5.6不会将character_set值更改为utf8mb4

时间:2014-11-26 16:53:07

标签: php mysql iis server

我正在更改Windows上的my.ini文件,即C:/ ProgramData / MySQL / MySQL Server 5.6中的my.ini文件,但它只更改了某些character_sets的值,如果你在运行{{{在phpmyadmin中,它显示了一些选项的utf8。

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

我已经尝试了几种配置:

**Variable_name**           **Value**
character_set_client        utf8
character_set_connection    utf8
character_set_database      utf8mb4
character_set_filesystem    binary
character_set_results       utf8
character_set_server        utf8mb4
character_set_system        utf8
collation_connection        utf8_general_ci
collation_database          utf8mb4_unicode_ci
collation_server            utf8mb4_unicode_ci

以及上述选项的不同组合,但没有。 在mysql上看时总是显示相同的值。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

从MySQL的utf8切换到utf8mb4

第1步:创建备份

创建要升级的服务器上所有数据库的备份。安全第一!

第2步:升级MySQL服务器

将MySQL服务器升级到v5.5.3 +,或者请求服务器管理员为您执行此操作。

步骤3:修改数据库,表格和列

更改数据库,表和列的字符集和排序规则属性,以使用utf8mb4而不是utf8。

# For each database:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
# For each table:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# For each column:
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# (Don’t blindly copy-paste this! The exact statement depends on the column type, maximum length, and other properties. The above line is just an example for a `VARCHAR` column.)

由于utf8mb4完全向后兼容utf8,因此不应发生mojibake或其他形式的数据丢失。 (但你有备份,对吗?)