Discuz 使用 MySQL 8.0 无法创建表forum_forum

1、安装Discuz,使用MySQL8.0创建数据库时报错,提示缺少forum_forum表。

造成的原因:

  • MySQL8.0对很多关键字保留了,需要对表名进行转意。
  • Discuz 默认使用的是MySQL5.6的架构

2、按照以下命令修改Discuz源文件即可。

sed -ri 's/ {2}([a-z0-9_]+)/  `\1`/g' install/data/install.sql uc_server/install/uc.sql
sed -i 's/[^\`]\<\(rank\)\>/`\1`/g' source/class/table/table_forum_forum.php
sed -i 's/[^\`]\<\(system\)\>/`\1`/g' source/class/table/table_common_usergroup.php
sed -i 's/[^\`]\<\(groups\)\>/`\1`/g' source/class/table/table_forum_announcement.php

3、重新安装,强行删除原有数据即可正常运行。

  • 在站点后加上install,并按照提示删除锁文件即可
    http://www.colin.com/discuz/install/