如何解决易优CMS中 General error_ 1366 Incorrect string value 错误?

COS、CDN
wdzsjl 1个月前 (12-03) 阅读数 79 #PbootCMS

解决易优CMS中 General error: 1366 Incorrect string value 错误的方法主要包括以下几个步骤:

  1. 升级MySQL版本

    • 如果当前使用的MySQL版本低于5.5,建议首先将MySQL版本升级到5.7或更高版本。新版本的MySQL已经全面支持 utf8mb4 编码,能够更好地处理4字节字符。
  2. 修改数据库字符集

    • 登录到MySQL数据库管理工具(如phpMyAdmin、Navicat等)。
    • 选择易优CMS使用的数据库,执行以下SQL语句,将数据库的字符集和排序规则更改为 utf8mb4 和 utf8mb4_general_ci
      sql
       
      ALTER DATABASE 你的数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
  3. 修改数据表和字段字符集

    • 对于需要存储特殊字符的表和字段,执行以下SQL语句,将其字符集和排序规则更改为 utf8mb4 和 utf8mb4_general_ci。例如,假设需要修改 ey_content 表中的 content 字段:
      sql
       
      ALTER 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;
  4. 修改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
  5. 重启MySQL服务

    • 保存配置文件后,重启MySQL服务以使更改生效。在宝塔面板中,可以通过“软件商店” -> “MySQL” -> “设置” -> “重启”来完成重启操作。
  6. 验证修改结果

    • 重新尝试插入或更新包含特殊字符的内容,确认不再出现 General error: 1366 Incorrect string value 错误。
    • 可以通过以下SQL查询来检查数据库和表的字符集是否已成功更改为 utf8mb4
      sql
       
      SHOW VARIABLES LIKE 'character_set_%'; SHOW VARIABLES LIKE 'collation%'; SHOW FULL COLUMNS FROM ey_content;
COS、CDN
热门