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

标签 php mysql iis server

我正在更改 Windows 上的 my.ini 文件,该文件位于 C:/ProgramData/MySQL/MySQL Server 5.6 中,但它只会更改某些字符集的值,如果您在我运行 SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collat​​ion%'; 在 phpmyadmin 中它显示了一些选项的 utf8。

**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

我已经尝试过几种配置,例如:

[client]
default-character-set = utf8mb4
no-beep

[mysql]
default-character-set = utf8mb4

[mysqld]
#init_connect='SET collation_connection = utf8mb4_unicode_ci'
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
#init-connect='SET NAMES utf8mb4'
skip-character-set-client-handshake

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

最佳答案

从 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 完全向后兼容,因此不应发生拼写或其他形式的数据丢失。 (但是你有备份,对吧?)

关于php - mysql5.6 不会将 character_set 值更改为 utf8mb4,my.ini 配置在 windows 和 iis 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27154664/

相关文章:

php - 强制从静态电子邮件地址发送的 SMS 消息使用相同的号码(AT&T 示例)

php - 将MySQL请求结果放入表中

asp.net - Lightswitch 2013 应用程序将在服务器上运行,但不能从 Web 运行

php - 仅当客户未使用优惠券时,才将优惠券添加到处理订单电子邮件中

php - 正则表达式匹配以 %% 开头和结尾的字符串

php - 将数据从 Magento 中的事件观察器返回给调度程序

c# asp.net DateTime 缓存

mysql - 使用 join 代替这两个单独的查询

mysql - 多对多 EclipseLink 插入

asp.net-mvc - 将 MVC 2 应用程序添加到 IIS 7 中的 Nancy 站点