我正在更改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上看时总是显示相同的值。 有什么建议吗?
答案 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或其他形式的数据丢失。 (但你有备份,对吗?)