当前位置:网站首页 >  百科

EyouCMS建站遇到MySQL版本兼容问题 手把手实操解决指南

时间:2026年05月20日 07:12:12 来源:易频IT社区

第一步:先确认你的兼容问题类型

EyouCMS建站遇到MySQL版本兼容问题 手把手实操解决指南(0)

你可以根据页面报错信息快速对应问题,EyouCMS的MySQL兼容问题总共分三类,对应不同解决方法:

  • 类型1:安装/运行提示Invalid default value for 字段名:这是sql_mode规则不兼容导致,绝大多数出现在MySQL5.7及以上版本
  • 类型2:连接数据库提示caching_sha2_password认证错误:这是MySQL8.0默认加密方式与低版本PHP不兼容导致
  • 类型3:网站迁移后提示Illegal mix of collations排序错误:这是MySQL8.0默认排序规则不匹配导致

问题1:sql_mode不兼容报错 实操解决步骤

该问题不需要修改MySQL核心配置,只需要修改EyouCMS的数据库配置即可,步骤如下:

步骤1.1:找到数据库配置文件

根据你的EyouCMS版本,找到对应路径的配置文件:

  • EyouCMS v1.x版本:配置路径为 application/database.php
  • EyouCMS v2.x及以上版本:配置路径为 config/database.php

步骤1.2:添加兼容配置

打开配置文件后,找到数据库连接配置数组中的params项,如果该项为空,直接替换为以下可复制代码:

```php 'params' => [ PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "set sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'", ], ```

如果配置文件中没有params项,直接把上述代码加到数据库连接配置数组的末尾即可;如果已经存在params,只需要添加最后一行set sql_mode的代码即可,保存文件即可。

步骤1.3:配置修改后仍报错的补充操作

如果修改EyouCMS配置后仍然报错,你可以修改MySQL本身的配置文件:

  • Linux服务器配置文件路径:/etc/my.cnf
  • Windows服务器配置文件路径:MySQL安装根目录下的my.ini

找到配置文件中[mysqld]节点,添加或修改sql_mode配置为:

```ini sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION ```

EyouCMS建站遇到MySQL版本兼容问题 手把手实操解决指南(6)

保存后执行重启命令生效:

```bash CentOS/RHEL系统 systemctl restart mysqld Ubuntu/Debian系统 systemctl restart mysql ```

问题2:MySQL8.0加密方式不兼容 实操解决步骤

该问题原因是MySQL8.0默认使用caching_sha2_password加密方式,PHP7.4以下版本不支持该加密方式,操作步骤如下:

步骤2.1:登录MySQL命令行

在服务器终端输入以下命令,回车后输入MySQL的root密码即可登录:

```bash mysql -u root -p ```

步骤2.2:修改用户加密方式

复制执行以下SQL,把占位符替换成你自己的数据库信息即可:

```sql -- 替换your_eyou_user为你的EyouCMS数据库用户名,your_password为你的数据库密码 -- 如果数据库只允许本地连接,把 '%' 改成 'localhost' ALTER USER 'your_eyou_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; ```

执行完成后配置就生效,不需要重启MySQL。

问题3:排序规则不兼容 实操解决步骤

MySQL8.0默认排序规则为utf8mb4_0900_ai_ci,旧版EyouCMS不兼容,批量修改步骤如下:

EyouCMS建站遇到MySQL版本兼容问题 手把手实操解决指南(12)

如果你使用phpMyAdmin管理数据库,操作步骤为:

  1. 登录phpMyAdmin,选中你的EyouCMS数据库,点击顶部的「操作」标签
  2. 在「整理」下拉框中选择 utf8mb4_general_ci
  3. 勾选「改变所有表的整理方式」和「改变所有表中字段的整理方式」,点击执行即可完成批量修改

如果你使用命令行操作,先执行以下SQL生成批量修改语句,替换eyoucms_db为你的数据库名:

```sql SELECT CONCAT('ALTER TABLE ', table_name, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;') AS alter_sql FROM information_schema.tables WHERE table_schema = 'eyoucms_db'; ```

把生成的所有SQL语句批量复制,再次执行就能完成所有表和字段的排序规则修改。

提前避坑:全新安装提前解决兼容问题

如果你是全新安装EyouCMS,做好以下三步就能从源头避免兼容问题:

  • 直接下载最新版EyouCMS,下载地址:https://www.eyoucms.com/download.html,最新版已经默认兼容MySQL5.7到8.0所有正式版本
  • 创建数据库的时候,排序规则直接选择utf8mb4_general_ci,不要选择默认的utf8mb4_0900_ai_ci
  • 环境搭配选择:PHP版本选择7.3-7.4,兼容所有版本EyouCMS和MySQL,不会出现兼容性问题

所有操作完成后,删除EyouCMS根目录下 runtime/ 文件夹内的所有缓存文件,刷新网站即可正常访问,所有兼容问题即可解决。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图