单机传奇无D盘DBC2000修改数据库路径后依旧报错的调整方法

来源: 作者: 点击:
电脑没有D盘,把DBC2000的数据库路径改到其他磁盘之后依旧无法正常加载,这个问题不只是DBC面板里的路径,服务端内多处配置、引擎读取项、系统权限、别名设置都需要同步改动,只改一处就会持续报错。

先确认DBC2000里面的别名设置,打开DBC控制面板,找到HeroDB这条记录,很多人只修改路径文本,别名名称没有保持原样,别名必须是HeroDB,大小写不能改动。路径填写的时候,不要使用中文文件夹,不要使用过长的目录名,示例可以写成E:\MirServer\Mud2\DB,填写完成之后,点击应用保存,再关闭DBC面板重新打开一次,确认配置已经保存成功。部分系统修改路径之后,DBC不会自动刷新,需要重启DBC对应的服务,在系统服务列表找到BDE服务,停止之后再启动,让新的路径生效。

接下来核对服务端内所有读取数据库的配置文件,引擎、登录网关、角色网关都会读取HeroDB,里面写死D盘路径的地方不会跟着DBC的设置自动变更。打开MirServer目录,依次查看LoginSvr、DBServer、GameSvr对应的ini配置文件,查找里面带有D:\MirServer这类字段,全部替换成现在新的磁盘路径,E盘或者F盘路径按实际填写,每一个配置文件都要检查,漏掉任意一个,网关读取数据库失败,引擎启动报错。

然后检查M2引擎的配置,打开引擎控制面板,找到数据库选项,确认数据库别名是HeroDB,不要填写直接磁盘路径。部分版本的M2会在脚本或者物品加载项里面写死D盘DB文件路径,在引擎配置的脚本路径、DB文件读取路径里面,把D盘相关路径全部替换,保存设置之后关闭引擎。

文件夹权限问题很容易被忽略,放到E盘或者F盘的服务端目录,默认权限不足,BDE组件无法读取db文件。右键整个MirServer文件夹,选择属性,取消只读勾选,进入安全选项卡,给当前用户勾选完全控制权限。如果是系统保护的磁盘根目录,不要直接放在E盘根目录,新建英文文件夹存放,放在根目录容易触发权限拦截。

BDE本身的配置文件也需要检查,DBC2000对应的BDE配置会生成一个ini文件,部分版本DBC面板修改不会同步写入这个文件,找到BDE安装目录下的idapi32.ini,用记事本打开,搜索HeroDB,确认里面的PATH路径和你设置的路径一致,如果不一致,手动修改保存,再重启BDE服务。修改这个文件的时候,记事本需要右键选择以管理员身份打开,不然保存会被拒绝,修改内容不会记录。

检查db文件本身是否完整,路径迁移之后,db文件如果复制的时候中断,文件损坏,就算路径正确也加载失败。重新把Mud2里面的db文件复制一遍,确认文件大小和原资源一致,items.db、monster.db、magic.db这三个是核心文件,缺失或者损坏都会报错。

还有批处理启动文件,很多一键启动的bat里面写死了D盘路径,打开所有bat批处理,查找D盘字符,全部替换成新磁盘路径,批处理里面的路径不修改,启动的时候会尝试去D盘读取文件,出现找不到数据库的提示。

修改完成之后,按照固定顺序测试,先重启BDE服务,再依次启动数据库网关、登录网关、游戏引擎,观察DBServer的日志窗口,如果提示打开数据库成功,代表路径已经生效。日志依旧提示找不到HeroDB,优先回到DBC面板,确认别名名称没有写错,再检查idapi32.ini里面的路径,接着核对各个网关ini配置和bat文件。

部分精简版系统BDE组件存在兼容缺陷,更换磁盘之后稳定性变差,可以把服务端放到空间充足的其他磁盘,路径层级尽量简短,不要嵌套多层文件夹,路径里面不要有空格。不要使用移动硬盘存放数据库文件,移动存储的BDE读取稳定性差,经常出现修改路径后识别失败。

全部修改完成后,关闭所有网关和引擎窗口,结束后台残留进程,再重新启动整套服务,只要还有一处配置保留旧的D盘路径,就会出现DBC已经改好,但是服务依旧无法读取数据库的情况。