You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移Revive Ad Server至新服务器后登录提示‘user_id’字段不存在

解决Revive Ad Server迁移后登录时Unknown column 'user_id' in 'field list'错误

你遇到的这个问题,本质是数据库表结构没跟上Revive Ad Server从OpenX升级后的变更——ox_session表缺失了user_id字段,导致系统执行会话更新时出错。下面是一步步的排查和修复方案:

1. 先确认数据库表结构问题

首先登录新服务器的MySQL控制台,检查ox_session表的结构:

DESCRIBE ox_session;

如果结果里确实没有user_id这一行,说明你恢复的备份要么是未完成OpenX到Revive升级的旧数据库,要么备份时只导出了数据、没同步最新表结构。

2. 重新运行Revive升级脚本

Revive在升级时会自动更新数据库结构,你可以重新触发升级流程来补全缺失的字段:

  • 确保新服务器上的Revive文件是完整的v4.11版本,然后访问后台升级页面:
    http://你的新服务器地址/revive/www/admin/install.php
    
  • 选择"Upgrade"选项,跟着向导走,系统会自动检测数据库结构差异,完成包括ox_session表在内的结构更新。
  • 👉 执行前记得再备份一次当前数据库,以防意外。

3. 手动修复表结构(如果升级脚本失效)

要是升级脚本没法正常运行,你可以直接执行SQL添加缺失的字段:

ALTER TABLE ox_session ADD COLUMN user_id INT(11) DEFAULT NULL AFTER session_id;

执行完成后,再尝试登录后台,看看错误是否消失。

4. 清除系统缓存

有时候表结构修复了,但缓存的旧结构信息还会导致问题,需要清理Revive的缓存:

  • 找到Revive安装目录下的var/cache文件夹,删除里面所有文件和子文件夹(别删cache文件夹本身)。
  • 也可以用命令行快速清理:
    rm -rf /你的Revive安装路径/var/cache/*
    

5. 最后检查数据库连接配置

再确认一遍conf.php里的数据库主机、用户名、密码、库名是否完全正确,避免因为连错数据库导致的结构不匹配。


内容的提问来源于stack exchange,提问作者Erich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:16:42