Skip to content

常见数据库报错汇总与处理方案

在安装或初始化 EBAOZU 系统时,若遇到数据库相关错误,通常由以下几种原因引起:


错误:ONLY_FULL_GROUP_BY 严格模式报错

  • 报错信息Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column...
  • 根本原因:MySQL 8.0 默认开启了 ONLY_FULL_GROUP_BY 规则。
  • 解决步骤
    1. 宝塔面板 -> 【软件商店】 -> 【MySQL】 -> 【设置】 -> 【配置修改】。
    2. 搜索 sql_mode,修改为:
      ini
      sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    3. 保存并重启 MySQL 服务。

错误:Packet too large(数据包过大导致导入中断)

  • 报错信息Got a packet bigger than 'max_allowed_packet' bytes
  • 根本原因:导入大型基础数据表或带有长文本的 SQL 时,MySQL 默认的单次数据包大小限制过小。
  • 解决步骤
    1. 打开 MySQL 配置文件(my.cnf 或宝塔配置修改)。
    2. 找到 max_allowed_packet,将其调大为 64M128M
      ini
      max_allowed_packet = 128M
    3. 保存并重启 MySQL。

错误:字符集与排序规则不支持 Emoji 表情或报错

  • 报错信息Incorrect string value: '\xF0\x9F\x91\x8D' for column...
  • 根本原因:数据库或表字符集使用了 utf8(仅支持 3 字节),未配置为支持 4 字节的 utf8mb4
  • 解决步骤
    1. 创建数据库时,字符集务必选择 utf8mb4
    2. 排序规则选择 utf8mb4_general_ciutf8mb4_unicode_ci

错误:数据库连接超时或 Wait timeout

  • 解决步骤
    1. my.cnf 中适当调大 wait_timeoutinteractive_timeout(例如设为 28800)。
    2. 配置修改后重启 MySQL 并重启 Swoole 守护进程。

承信租多门店租赁商城系统官方文档