Php 在windows和iis上运行my.ini配置时,mysql5.6不会将字符集值更改为utf8mb4
我正在更改windows上的my.ini文件,即C:/ProgramData/MySQL/MySQL Server 5.6中的文件,但它只更改某些字符集的值,如果我运行Php 在windows和iis上运行my.ini配置时,mysql5.6不会将字符集值更改为utf8mb4,php,mysql,iis,server,Php,Mysql,Iis,Server,我正在更改windows上的my.ini文件,即C:/ProgramData/MySQL/MySQL Server 5.6中的文件,但它只更改某些字符集的值,如果我运行SHOW Variable_name(如“character\\u set\\\\%”或Variable_name(如“collation%”)时看到下面的内容,请参见下面的内容在phpmyadmin中,它显示一些选项的utf8 **Variable_name** **Value** character_set
SHOW Variable_name(如“character\\u set\\\\%”或Variable_name(如“collation%”)时看到下面的内容,请参见下面的内容代码>在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完全向后兼容,因此不应发生mojibake或其他形式的数据丢失。(但是你有备份,对吗?我已经备份了,我的问题似乎是mysql配置文件删除了之前设置的参数,但请确保先备份.cnf文件。然后删除并重新启动mysql。在我的情况下,它可以工作。删除参数,什么参数?你之前已经设置好了,就像所有字符集相关的配置一样。从.my.cnf中删除它&然后按照我在回答中给出的做。您的回答是从这里开始的,那里说要更改my.ini