请问如何解决易优CMS中 General error_ 1366 Incorrect string value 错误?
解决易优CMS中 General error: 1366 Incorrect string value 错误的方法主要包括以下几个步骤:
-  升级MySQL版本: - 如果当前使用的MySQL版本低于5.5,建议首先将MySQL版本升级到5.7或更高版本。新版本的MySQL已经全面支持 utf8mb4编码,能够更好地处理4字节字符。
 
- 如果当前使用的MySQL版本低于5.5,建议首先将MySQL版本升级到5.7或更高版本。新版本的MySQL已经全面支持 
-  修改数据库字符集: - 登录到MySQL数据库管理工具(如phpMyAdmin、Navicat等)。
- 选择易优CMS使用的数据库,执行以下SQL语句,将数据库的字符集和排序规则更改为 utf8mb4和utf8mb4_general_ci: sqlALTER DATABASE 你的数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
 
-  修改数据表和字段字符集: - 对于需要存储特殊字符的表和字段,执行以下SQL语句,将其字符集和排序规则更改为 utf8mb4和utf8mb4_general_ci。例如,假设需要修改ey_content表中的content字段: sqlALTER TABLE ey_content CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE ey_content MODIFY content LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
 
- 对于需要存储特殊字符的表和字段,执行以下SQL语句,将其字符集和排序规则更改为 
-  修改MySQL配置文件: - 打开MySQL的配置文件 my.cnf(在宝塔面板中,路径通常是/etc/my.cnf)。
- 在 [client]、[mysqld]和[mysql]部分添加或修改以下配置: ini[client] default-character-set=utf8mb4 [mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' skip-character-set-client-handshake = true [mysql] default-character-set = utf8mb4
 
- 打开MySQL的配置文件 
-  重启MySQL服务: - 保存配置文件后,重启MySQL服务以使更改生效。在宝塔面板中,可以通过“软件商店” -> “MySQL” -> “设置” -> “重启”来完成重启操作。
 
-  验证修改结果: - 重新尝试插入或更新包含特殊字符的内容,确认不再出现 General error: 1366 Incorrect string value错误。
- 可以通过以下SQL查询来检查数据库和表的字符集是否已成功更改为 utf8mb4: sqlSHOW VARIABLES LIKE 'character_set_%'; SHOW VARIABLES LIKE 'collation%'; SHOW FULL COLUMNS FROM ey_content;
 
- 重新尝试插入或更新包含特殊字符的内容,确认不再出现 

更新时间:2025-04-10 23:36:33
转载请注明原文链接:https://www.muzicopy.com/suibi/2795.html
