Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在windows和iis上运行my.ini配置时,mysql5.6不会将字符集值更改为utf8mb4_Php_Mysql_Iis_Server - Fatal编程技术网

Php 在windows和iis上运行my.ini配置时,mysql5.6不会将字符集值更改为utf8mb4

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

我正在更改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_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