报错停在“正在加载物品数据库”然后抛 no such table: StdItems,本质就一句话:DBServer 没在它认为该读的地方读到 StdItems 这张表。不是 M2 脚本问题,不是客户端问题,先别动 Envir 和补丁。
一、先确认报错发生在哪一环
看是哪个窗口报的:
DBServer 黑窗报 no such table: StdItems → 数据库层没读到,根因在 Mud2\DB 或 DBC 配置
M2Server 报 select * from StdItems 失败 → DBServer 没把表暴露出来,先修 DBServer
登录器能进、选人后崩 → 那是另一回事,不是这张表的问题
你贴的报错带 select * from StdItems order by idx,这是 DBServer 在查库,问题 100% 在数据库文件或数据库驱动层。
二、检查 Mud2\DB 里到底有没有文件
进服务端目录,找实际放库的文件夹,常见两个位置:
D:\MirServer\Mud2\DB
D:\MirServer\Mir200\Mud2\DB
打开看里面有什么,分两种情况:
情况A:老 Hero / Blue / 传统引擎
应该有这三个文件:
StdItems.DB
Magic.DB
Monster.DB
缺任何一个都报表不存在。文件大小正常是几十 KB 到几百 KB,0 字节也算缺失。
情况B:GOM / GEE 新引擎
可能只有一个整库文件:
GOM 系:HeroDB.MDB(Access)
GEE 系:GEEM2.DB(SQLite)
部分 V8:ApexM2.DB
这时候目录里没有单独的 StdItems.DB 是正常的,引擎把三张表塞进一个文件里。
三、老引擎走 DBC2000 的修法
1. 关杀软,查隔离区
Defender、火绒、360 常把 StdItems.DB 当可疑文件删。整个 D:\MirServer 加白名单,隔离区里有的恢复出来。
2. 看文件权限
右键 Mud2\DB 文件夹 → 属性 → 取消只读 → 安全 → 当前用户完全控制。
3. 配 DBC2000(BDE Administrator)
控制面板 → 大图标 → 找 BDE Administrator(Win10/11 找不到就去 C:\Program Files (x86)\Borland\Common Files\BDE\bdeadmin.exe)。
左侧 Databases 右键 New → 类型 STANDARD → 重命名别名:
HeroDB
大小写严格,herodb / HeroDb 都不认。
右边参数:
TYPE = STANDARD
PATH = D:\MirServer\Mud2\DB (指向 DB 文件夹本身,不是 Mud2,不是 MirServer)
LANGDRIVER = Chinese (PRC) ANSI
ACTIVE = True
Ctrl+S 保存,关窗口点 Yes。
4. 验证能展开表
重新打开 BDE Administrator,点开 HeroDB 别名,能看到 StdItems、Magic、Monster 三张表,表里能看行数据,说明驱动通了。看不到表就是 PATH 指错或者文件损坏。
5. 清 BDE 锁文件
删掉:
C:\Windows\System32\PDOXUSRS.NET
C:\Windows\SysWOW64\PDOXUSRS.NET(64位系统)
结束任务管理器里残留的 DBServer.exe、M2Server.exe,再起服务。
四、新引擎(GOM/GEE)走内置库的修法
如果 Mud2\DB 里只有 HeroDB.MDB 或 GEEM2.DB,就别配 DBC2000 了,DBC 配了也没用。
打开 GameCenter.exe(引擎控制器)→ 配置向导:
数据库类型:选 Access(GOM)或 SQLite(GEE)
数据库文件:浏览选到 Mud2\DB\HeroDB.MDB 或 GEEM2.DB
数据库名称:留空或按配置器默认,不要硬填 HeroDB
保存配置,重启控制器。
如果控制器里没数据库类型选项,去找 DBServer\DBConfig.ini,手动改:
DBType=Access ; 或 SQLite
DBFile=D:\MirServer\Mud2\DB\HeroDB.MDB
改完保存。
五、引擎配置和 DBC 别名必须对得上
不管哪种引擎,三处名字要一致:
1. BDE 里别名:HeroDB
2. GameCenter 配置向导里“数据库名称”:HeroDB
3. !Setup.txt 或 DBConfig.ini 里 DBCName / DBPath 参数
检查 !Setup.txt:
DBCName=HeroDB
DBPath=D:\MirServer\Mud2\DB
末尾别多空格,路径用反斜杠 \,不用斜杠 /。
六、文件损坏或无极数据库编辑器踩坑
如果你用无极数据库编辑器改过数据,注意:
老版本带 DBC 三文件(StdItems.DB、Magic.DB、Monster.DB)
新版本可能是 Access/SQLite 单文件
编辑器打开时默认先读 DBC,如果你版本实际用 Access,它会读错库,改了不生效,甚至把空库当当前库,启动时查 StdItems 就报 no such table。
修法:无极编辑器里“数据库切换”菜单,切到 Access 或 SQLite,确认读的是 HeroDB.MDB / GEEM2.DB。或者把 Mud2\DB 里多余的 StdItems.DB、Magic.DB、Monster.DB 三个空文件删掉,让编辑器强制读整库文件。
七、解压不完整兜底
Mud2\DB 里文件全没有,或只有空壳:
从原下载压缩包重新解压 Mud2\DB 目录覆盖(先备份自己改过的)
没有原包,找同引擎同版本的完整库包,注意 GOM 不能拿 Hero 老 DB 硬套,字段结构不一样
覆盖前结束 DBServer、M2Server 进程,不然文件占用覆盖失败
八、启动顺序再确认
修完按这个顺序起:
1. 任务管理器杀干净 DBServer.exe、M2Server.exe、各网关进程
2. 起 DBServer.exe → 看黑窗出“数据库启动成功 / 物品数据加载完成”
3. 再起 LoginSrv → LoginGate → SelGate → RunGate
4. 最后起 M2Server
DBServer 没起来就起 M2,必报 StdItems 读不到。
九、还报错的最后两招
1. 注册表 BDE 共享内存
regedit 搜 SHAREDMEMLOCATION,值改成 0x5BDE,重启电脑。
2. 路径含中文/空格
D:\MirServer 可以,D:\传奇世界、D:\My Server 都不行。整个目录挪到纯英文路径,BDE 里 PATH 同步改。
十、快速自检清单
Mud2\DB 里有 StdItems.DB(或 HeroDB.MDB / GEEM2.DB)
文件不是 0 字节,没被杀软隔离
BDE 别名 HeroDB,PATH 精确到 DB 文件夹
引擎配置向导数据库名和 BDE 一致
!Setup.txt 的 DBPath 和实际路径一致
DBServer 先起,出“数据库启动成功”再起 M2
这六条过一遍,no such table: StdItems 基本都能消。问题不在 M2 脚本也不在客户端,死磕数据库层就行。
传奇世界单机启动报no such table StdItems修复实录
来源:
作者:
点击:

