升级了MYSQL 8.0。
Discuz X3.2 变进不去后台。
提示:
(1064) 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 'system>0' at line 1
SELECT COUNT(*) FROM common_usergroup WHERE type='special' and system>0
这是因为:
MySQL 8.0+将system和groups作为了关键字,所以不能直接在SQL中将system和groups这两个词作为数据库、数据表、数据表字段中的任意一种使用,如果数据库名或数据表名或数据表字段名使用了system或groups作为名字,必须使用一对反引号引用起来。写作`system`或`groups`。
解决办法:
找到Discuz!目录中的source\class\table\table_common_usergroup.php,比如
\www\xxx\source\class\table\table_common_usergroup.php
第135行 中的
system 改成 ‘system’ ,保存后重新上传到服务器的相同目录即可。
当system更改完毕后,网站能进入后台了。
同时,还有一个MYSQL 版本过高的问题。
就是点击工具-更新缓存的时候,同样也会出现1064的错误,也只需要到相应目录更改一下代码。
因为当时没有注意更新缓存也是这个原因,所以分成了两篇文章。