无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 10603|回复: 23
打印 上一主题 下一主题

[分享] mysql 8.0.11 下 安装discuzX 3.4 已成功,7楼附解决办法

  [复制链接]
跳转到指定楼层
1#
发表于 2018-5-20 11:30:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在centos 7.5系统,apache 2.4.6 , php 7.25 ,mysql 8.0.11 下,无法正常安装discuzX 3.4。安装时,会出现一大堆错误,提示mysql 建表出错,与 mysql建表用了一些关键词有关。

Error:You have an error in your SQL syntax;check the manual that corresponds to your MySQL server version for the right syntax to use near 'admin char(15) NOT NULL default '0' ... 之类的错误。

根据提示, 估计 admin  groups system rank 这些词都是mysql 8系统保留关键词,修改相关文件建表语句,字段名加反引号 ``完成安装。

但打开首页时,论坛就直接乱了版面,图片也不显示,估计还有一些文件未修改。



上图中管理员入口也没有,也就是无法进入后台。
所有图片的路径都是在根目录下,说明程序无法获取图片路径参数。

------------------------------------------------------------------------------------------

目前已解决安装问题,方法见7楼:

评分

参与人数 2无忧币 +10 收起 理由
m998001 + 5 神马都是浮云
M + 5 赞一个!

查看全部评分

推荐
 楼主| 发表于 2018-5-21 00:50:34 | 只看该作者
提供补丁文件下载,只要把补丁包文件放入官方原版文件2018.01.01版对应文件夹替换即可正常安装。
patch支持mysql8.zip (27.18 KB, 下载次数: 84)

也可以自己去修改原版文件

解决思路:其实很简单,就是给 admin rank system groups 这四个字段名加反引号(键盘左上角ESC键下方的` 这个键),不改动其他任何东西。

centos 7.5 shell命令行 文件批量替换:

如当前目录是网站的wwwroot
[root@t6 wwwroot]# pwd
/home/bbs/wwwroot

执行以下 shell 命令就可完成相关文件替换:
  1. sed -ri 's/ {2}([a-z0-9_]+)/  `\1`/g' install/data/install.sql uc_server/install/uc.sql
  2. sed -i 's/[^\`]\<\(rank\)\>/`\1`/g' source/class/table/table_forum_forum.php
  3. sed -i 's/[^\`]\<\(system\)\>/`\1`/g' source/class/table/table_common_usergroup.php
  4. sed -i 's/[^\`]\<\(groups\)\>/`\1`/g' source/class/table/table_forum_announcement.php
复制代码


------------------------------------------------------

下面是说明具体修改的内容,仅供参考。

1.
install/data/install.sql
uc_server/install/uc.sql

凡行首出现 admin  groups system rank 有关的加`` 反引号,也可以将所有的字段名加`号。

2 ./source/class/table/table_forum_forum.php:        

查找      
  1. DB::query("UPDATE ".DB::table($this->_table).' SET oldrank=rank,yesterdayposts=todayposts');
复制代码

修改为:
  1. DB::query("UPDATE ".DB::table($this->_table).' SET oldrank=`rank`,yesterdayposts=todayposts');
复制代码


3 ./source/class/table/table_common_usergroup.php:

查找
  1. return DB::fetch_all('SELECT * FROM %t WHERE (type=\'special\' AND system<>\'private\' AND radminid=\'0\') OR groupid IN (%n) ORDER BY type, system', array($this->_table, $ids), $this->_pk);
复制代码


修改为:
  1. return DB::fetch_all('SELECT * FROM %t WHERE (type=\'special\' AND `system`<>\'private\' AND radminid=\'0\') OR groupid IN (%n) ORDER BY type, `system`', array($this->_table, $ids), $this->_pk);
复制代码


4 ./source/class/table/table_forum_announcement.php:        

查找      
  1. return DB::fetch_first('SELECT * FROM %t WHERE type!=2 AND groups = \'\' AND starttime<=%d AND (endtime>=%d OR endtime=0) ORDER BY displayorder, starttime DESC, id DESC LIMIT 1', array($this->_table, $timestamp, $timestamp));
复制代码


修改为:
  1. return DB::fetch_first('SELECT * FROM %t WHERE type!=2 AND `groups` = \'\' AND starttime<=%d AND (endtime>=%d OR endtime=0) ORDER BY displayorder, starttime DESC, id DESC LIMIT 1', array($this->_table, $timestamp, $timestamp));
复制代码


目前尚未做完整测试,其他问题待发现。

评分

参与人数 1无忧币 +5 收起 理由
dfw9 + 5 很给力!

查看全部评分

回复

使用道具 举报

3#
发表于 2018-5-20 21:26:39 | 只看该作者
听说PHP7和MySQL8相对以前的版本都变动很大...

点评

据说mysql 8的性能提升很大。 这次discuzX 3.4 在mysql 8 上的问题,八成是因为discuzX 对 mysql 的系统关键词上处理不当,没有对字段名进行转义处理,程序代码里面,有些全部进行了转义,有些没有,导致新的关键词  详情 回复 发表于 2018-5-20 21:39
回复

使用道具 举报

4#
 楼主| 发表于 2018-5-20 21:39:32 | 只看该作者
邪恶海盗 发表于 2018-5-20 21:26
听说PHP7和MySQL8相对以前的版本都变动很大...

据说mysql 8的性能提升很大。
这次discuzX 3.4 在mysql 8 上的问题,八成是因为discuzX 对 mysql 的系统关键词上处理不当,没有对字段名进行转义处理,程序代码里面,有些全部进行了转义,有些没有,导致新的关键词出现时,程序出错。

点评

不要拿"性能"说事,绝大多数站点都用不着那点"性能",只有BAT这种级别的才会考虑,但是人家那级别的都是自己写自己优化的...  详情 回复 发表于 2018-5-20 21:56
回复

使用道具 举报

5#
发表于 2018-5-20 21:56:01 | 只看该作者
wuyou 发表于 2018-5-20 21:39
据说mysql 8的性能提升很大。
这次discuzX 3.4 在mysql 8 上的问题,八成是因为discuzX 对 mysql 的系统 ...

不要拿"性能"说事,绝大多数站点都用不着那点"性能",只有BAT这种级别的才会考虑,但是人家那级别的都是自己写自己优化的...

点评

性能确实我们无法评测,不过对mysql 8 的好评很多。 对于技术迷来说,新技术总是很吸引人的,用来做研究还是不错的。 如果用于生产,需要反复权衡利弊。  详情 回复 发表于 2018-5-20 22:40
回复

使用道具 举报

6#
 楼主| 发表于 2018-5-20 22:40:14 | 只看该作者
邪恶海盗 发表于 2018-5-20 21:56
不要拿"性能"说事,绝大多数站点都用不着那点"性能",只有BAT这种级别的才会考虑,但是人家那级别的都是自己 ...

性能确实我们无法评测,不过对mysql 8 的好评很多。
对于技术迷来说,新技术总是很吸引人的,用来做研究还是不错的。
如果用于生产,需要反复权衡利弊。

点评

生产环境一般是不动的...  详情 回复 发表于 2018-5-20 23:59
回复

使用道具 举报

7#
发表于 2018-5-20 23:59:28 | 只看该作者
wuyou 发表于 2018-5-20 22:40
性能确实我们无法评测,不过对mysql 8 的好评很多。
对于技术迷来说,新技术总是很吸引人的,用来做研究 ...

生产环境一般是不动的...

点评

生产环境是没有办法,受约束的东西太多,要考虑到方方面面。 新技术,需要一段时间来学习和适应。  详情 回复 发表于 2018-5-21 22:50
回复

使用道具 举报

8#
发表于 2018-5-21 14:59:20 | 只看该作者
很好的经验分享
回复

使用道具 举报

9#
 楼主| 发表于 2018-5-21 20:14:07 | 只看该作者
现在问题解决,小小问题,却也费了不少力。
回复

使用道具 举报

10#
 楼主| 发表于 2018-5-21 22:50:10 | 只看该作者
邪恶海盗 发表于 2018-5-20 23:59
生产环境一般是不动的...

生产环境是没有办法,受约束的东西太多,要考虑到方方面面。
新技术,需要一段时间来学习和适应。
回复

使用道具 举报

11#
发表于 2018-6-15 22:26:29 | 只看该作者
谢谢,官方怎么不更新,哎
回复

使用道具 举报

12#
发表于 2018-8-2 21:21:38 | 只看该作者
谢谢分享,少走很多弯路
回复

使用道具 举报

13#
发表于 2018-9-24 00:14:18 | 只看该作者
门户的频道栏目的文章内容不显示,不知道我是不是个例
回复

使用道具 举报

14#
发表于 2018-11-22 02:29:03 | 只看该作者
安装后还是出现你说的,打开首页时,论坛就直接乱了版面,图片也不显示,估计还有一些文件未修改。请问怎么解决?
回复

使用道具 举报

15#
发表于 2018-11-22 14:49:19 来自手机 | 只看该作者
学习了!!!
回复

使用道具 举报

16#
发表于 2019-3-21 10:05:25 | 只看该作者
已安装成功,谢谢分享~
回复

使用道具 举报

17#
发表于 2019-7-4 16:18:22 | 只看该作者
感谢,想试试mysql8
回复

使用道具 举报

18#
发表于 2019-8-29 09:31:07 | 只看该作者
孤九 发表于 2018-9-24 00:14
**** 作者被禁止或删除 内容自动屏蔽 ****

一样的问题,但编辑时能看到内容,应该对应的数据表不是空的,可能是view模板的问题。
回复

使用道具 举报

19#
发表于 2019-8-29 10:14:04 | 只看该作者
站长666……找半天7楼……发现好像在一楼的地方
回复

使用道具 举报

20#
发表于 2019-11-13 14:41:06 | 只看该作者
终于解决问题了
回复

使用道具 举报

21#
发表于 2019-12-16 22:47:46 | 只看该作者
VIP会员 大元帅
回复

使用道具 举报

22#
发表于 2020-11-1 22:54:11 | 只看该作者
WO ZHENG xyao
回复

使用道具 举报

23#
发表于 2022-8-25 17:19:49 | 只看该作者
WO ZHENG xyao
回复

使用道具 举报

24#
发表于 2022-8-25 17:21:23 | 只看该作者

WO ZHENG xyao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-10 21:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表