discuz 3.4升级3.5提示common_setting' doesn't exist
之前用的是3.4的版本(应该不是最新的3.4),刚好换vps环境了,就顺道把3.4升级3.5算了第一步,升级ucenter,算是很顺利就升级成功了,和官方流程一致
第二步,升级discuz,各种出错,首先算环境检测无法通过,提示的ucenter版本号为空,无法继续升级,社区搜了一下,发现要先单独登录ucenter后台管理,提示手工删除uc_server/install/index.php,删除后正常访问,应用通讯错误,修改config/ucenter_config.php和里面的匹配,这一步算是解决了ucenter版本号无法获取的错误。
第三步, 解决这个ucenter版本号无法获取的问题以后,全部检测都通过了,就可以进入升级流程了,然后一开始就直接报错了:
Discuz! Database Error
Time: 2023-04-09 23:39:23 IP: 2xx5:5xx0:10xx:346:: BackTraceID: ce618681afe599bf863ad4271b600023
(1146) Table 'xxxbbs.common_setting' doesn't exist
SELECT svalue FROM common_setting WHERE `skey`='bbclosed'
PHP Debug
No.我知道答案 回答被采纳将会获得1 贡献 已有1人回答 你确定你升级的这个Discuz目录没有问题么?这个是非常基础的数据表,一个正常工作的Discuz不可能没有这张表,你仔细检查检查你试图升级的这个站点是不是不太对。比如检查下config文件夹里的配置,对照看看是哪一个数据库,数据库里的数据是否正常,等等。 **问题分析:**
在Discuz! X3.4升级到X3.5的过程中,出现 `common_setting` 表缺失的报错,通常是因为升级过程中数据库表结构未完全同步或升级流程未正确触发。以下是具体原因和解决方案:
---
### **原因解析**
1. **数据库升级脚本未执行**
升级流程中,`update.php` 会调用 `update_advance.php` 执行数据库结构更新。若升级文件未正确上传或权限问题导致脚本未执行,会导致核心表缺失。
2. **跨版本升级遗漏步骤**
从旧版X3.4直接升级到X3.5时,可能需先升级到中间版本(如X3.4最新版),否则数据库变更可能不完整。
3. **手动操作或备份问题**
如果之前通过非官方工具修改过数据库,或备份恢复时遗漏了表,可能引发此问题。
---
### **解决方案**
#### **步骤1:手动创建缺失表**
由于 `common_setting` 是核心配置表,需确保其存在。若表完全缺失,可以通过以下SQL手动创建(**操作前务必备份数据库**):
CREATE TABLE `pre_common_setting` (
`skey` varchar(255) NOT NULL DEFAULT '',
`svalue` mediumtext NOT NULL,
PRIMARY KEY (`skey`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
*注意:根据实际表前缀修改 `pre_`(默认前缀为 `pre_`)。*
---
#### **步骤2:检查并手动触发数据库升级**
1. **重新上传完整文件**
确保上传的X3.5安装包完整,覆盖所有文件(尤其是 `utilities/update.php` 和 `source/update` 目录)。
2. **手动执行升级脚本**
访问以下URL手动触发升级流程(替换为你的域名):
http://你的论坛地址/update.php?step=prepare
3. **检查升级日志**
查看 `data/update_log.php` 是否有报错记录,定位具体失败步骤。
---
#### **步骤3:修复UCenter关联**
1. **检查UCenter通信**
确保 `config/config_ucenter.php` 中UCenter的URL、密钥与UCenter服务端一致,且通信正常(UCenter后台显示“通信成功”)。
2. **同步UCenter数据**
在Discuz!后台 -> UCenter设置 -> 同步UCenter信息,确保用户中心数据一致。
---
#### **步骤4:环境适配与权限修复**
1. **检查MySQL版本**
Discuz! X3.5要求MySQL ≥5.6,若版本过低需升级或联系服务器商调整。
2. **修复文件权限**
确保以下目录可写:
- `data/`
- `config/`
- `uc_server/data/`
---
#### **附加建议**
- 若问题仍未解决,可尝试 **全新安装X3.5** 后通过工具迁移数据(如DZ-X.NET提供的迁移插件)。
- 检查是否有第三方插件冲突,临时关闭所有插件再试。
---
**操作后验证**
完成上述步骤后,刷新论坛页面,检查是否仍存在报错。若需进一步排查,可提供 `data/log/` 目录下的错误日志。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]