传奇SKY引擎单机架设物品魔法数据库加载错误连接关闭修复教程

来源: 作者: 点击:
使用SKY引擎搭建单机版本,启动引擎提示正在加载物品数据,弹出物品数据库加载错误,接着加载技能数据库提示魔法数据库加载错误,虽然最后显示服务器已启动,登录游戏却出现Connection closed连接关闭,这类故障根源集中在数据库文件、DBC2000配置以及引擎读取路径异常,服务器只是完成主程序启动,数据库没有正常加载,网关接收不到游戏数据,客户端连接后直接断开。

第一步检查DBC2000安装与数据库命名,SKY引擎依赖DBC2000读取物品和魔法数据库,没有安装或者数据库名称不对是最常见原因。先确认电脑已经安装DBC2000,打开控制面板找到DBE Administrator,新建数据库,数据库名称必须和服务端内配置文件保持一致,常见名称为HeroDB,字母区分大小写,不能使用中文名称。数据库路径指向服务端目录下的DB文件夹,路径不能包含中文、空格、特殊符号,例如D:\mirserver\DB,路径一旦存在中文,DBC读取db文件直接报错。设置完成点击应用保存,重启电脑让DBC配置生效,很多人修改完路径没有重启,配置不会加载。

第二步核对DB文件夹内数据库文件完整性,进入服务端DB目录,查看是否存在StdItems.DB、Magic.DB、MonItems.DB三个核心文件。StdItems.DB对应物品数据库,Magic.DB对应魔法技能数据库,文件缺失、文件损坏或者文件大小异常,就会出现加载异常。如果文件缺失,从原版完整资源包复制对应db文件放入DB文件夹。如果文件存在但损坏,可以替换同版本可用的数据库文件,替换前关闭所有引擎、网关程序,文件占用状态下替换不会生效。不要直接用其他引擎的数据库文件,不同引擎数据库格式不兼容,强行替换依旧报错。

第三步检查引擎配置文件内数据库名称设置,打开服务端主配置文件,查找DBName相关参数,参数填写内容必须和DBC2000里面创建的数据库名称完全一致。如果DBC里面数据库叫HeroDB,配置文件写herodb,大小写不一样,读取失败。同时检查DB路径参数,确认指向DB文件夹,路径错误也会造成数据库读取失败。修改完成保存文件,全部关闭引擎窗口,重新启动整套服务端。

第四步排查文件权限与文件占用问题,服务端文件夹不要放在桌面、C盘用户目录,这类位置系统权限限制较高,DBC程序无法读取db文件。建议放置在D盘根目录下,文件夹名称简短无中文。右键点击服务端文件夹,选择属性,安全选项卡内给当前用户开启完全控制权限。关闭杀毒软件和安全防护工具,部分防护程序会隔离或者锁定db数据库文件,阻止引擎读取。后台如果有残留的引擎进程,会占用数据库文件,打开任务管理器,结束所有mir相关进程之后再重新启动服务端。

第五步按照正确顺序启动SKY引擎,数据库加载报错状态下,哪怕界面显示服务器已启动,网关也无法正常工作。正确启动顺序为先确认DBC服务正常运行,再启动数据库相关程序,之后启动引擎主程序,等待物品数据库、魔法数据库加载成功的提示,再依次开启登录网关、游戏网关。如果启动时依旧弹出数据库异常提示,不要继续打开网关,数据库没有加载成功,网关启动后客户端连接就会直接返回Connection closed。每次修改配置后,必须全部关闭所有窗口再重新启动,只重启部分程序无法加载新配置。

第六步处理客户端Connection closed连接关闭问题,数据库加载失败是出现这个提示的主要诱因,数据库正常加载完成之后,再检查客户端与登录网关配置。确认客户端内的IP和端口设置正确,单机环境填写127.0.0.1,登录网关监听端口没有被其他程序占用。打开网关配置,检查网关IP监听地址,单机状态监听127.0.0.1或者本机内网地址,确认防火墙没有拦截引擎和网关端口。如果数据库修复完成后,连接关闭提示依旧存在,查看网关日志,日志会记录连接失败原因,日志提示端口无法监听,更换空闲端口,在网关和客户端同步修改。

第七步版本兼容问题排查,SKY引擎有多个版本,老版本引擎无法读取新版格式的db数据库文件。核对引擎程序发布时间和数据库文件配套版本,引擎和数据库必须配套使用。如果使用了修改过的数据库工具编辑StdItems.DB或者Magic.DB,编辑操作不当会破坏数据库结构,导致引擎读取抛出异常,遇到这种情况,直接替换原始未修改的数据库文件测试。

第八步分步验证修复效果,完成上面操作后,完整重启电脑,打开DBC工具确认数据库路径和名称无误,关闭安全软件,重新启动服务端,观察引擎控制台输出信息,不再出现物品数据库、魔法数据库加载异常提示,代表数据库读取成功。之后打开客户端尝试登录,创建人物进入游戏。如果数据库加载正常,但客户端依旧连接关闭,单独排查网关端口和客户端IP配置。调试过程优先解决数据库报错,数据库异常不处理,无论怎么调整客户端,都会出现连接断开提示。

整套操作仅用于本地单机学习测试,相关操作需要遵守网络管理相关规定,调试前备份好DB文件夹内所有数据库文件,避免文件损坏丢失数据。