SKY数据库引擎出现物品数据库加载错误、魔法数据库加载错误,进游戏提示Connection closed,是单机架设里很常见的一类连锁报错,数据库读取失败会直接导致引擎数据加载不全,网关通信异常,客户端连接之后直接断开,下面按照由简到难的顺序,逐项排查修复。
先看懂日志提示,正在加载物品数据抛出异常,代表引擎读取物品DB文件失败,魔法数据库加载错误是技能魔法DB读取失败。虽然控制台提示服务器已启动,但是核心数据库没有正常载入,游戏服务功能是残缺的,客户端发起连接之后,服务端无法响应角色相关数据,直接断开连接,弹出Connection closed。
第一步检查DB文件路径与文件完整性。SKY引擎使用的数据库文件一般是Items.db、Magic.db、Monsters.db,存放在服务端DB文件夹内。打开服务端主目录,确认DB文件夹存在,检查Items.db和Magic.db文件没有被杀毒软件隔离删除。很多安全程序会直接隔离db后缀文件,打开隔离区查看,如果文件被隔离,恢复文件并添加信任目录。解压版本的时候不要用中文路径,整个服务端文件夹不能放在中文名称文件夹内,文件夹名称不能带空格、特殊符号,推荐放在D盘根目录,路径全部使用英文数字。如果DB文件缺失或者大小为0,需要重新解压原版服务端压缩包,取出完整DB文件夹替换。
第二步核对SKY引擎数据库配置文件。找到引擎配置文件,一般是Config.ini或者DB.ini,打开文件查看数据库路径配置项,确认Items.db、Magic.db的文件路径指向正确的DB文件夹。路径填写错误,引擎找不到对应的数据库文件,直接抛出加载异常。部分SKY版本需要在引擎面板手动选择DB目录,打开引擎主界面,找到数据库设置板块,手动选中DB文件夹,保存设置之后重启引擎。文件编码异常也会读取失败,不要用记事本直接修改db文件,只使用配套数据库工具打开编辑。
第三步使用SKY数据库工具校验DB文件。打开SKY配套数据库编辑器,分别加载Items.db物品数据库、Magic.db魔法数据库。如果工具打开时报错,说明数据库文件本身损坏,需要替换原版完好的db文件。成功打开之后,执行数据库校验功能,检查是否存在空行、非法字符、错误字段,字段类型不匹配、多余空记录都会造成引擎加载抛出异常。校验完成,保存数据库,关闭数据库工具,再重启引擎。修改数据库的时候,不要随意新增或者删除字段,SKY引擎对数据库字段顺序和字段数量有严格要求,改动字段结构会直接加载失败。
第四步检查引擎版本与DB数据库是否配套。SKY引擎不同版本的数据库结构不一样,高版本引擎无法读取旧版本导出的db文件,混用不同来源的服务端文件,极易出现物品、魔法库加载报错。如果是拼凑的版本文件,DB文件和当前SKY引擎不匹配,就算文件没有损坏,也会读取异常。需要使用这套引擎原版自带的DB文件,不要直接复制其他版本的Items.db、Magic.db过来使用。
第五步处理端口、网关问题,解决Connection closed连接关闭。数据库报错没有修复之前,优先处理数据库加载异常,数据库问题不解决,单纯调整网关无法修复断开连接。数据库加载正常之后,再检查LoginGate登录网关、游戏网关是否正常启动。单机环境所有配置内IP填写127.0.0.1,核对网关端口,确认端口没有被其他程序占用。关闭系统防火墙,防火墙拦截端口会造成客户端连上之后立刻断开。客户端内的连接配置文件IP地址必须和网关IP保持一致,单机填写127.0.0.1,端口和网关监听端口一致。网关程序出现报错窗口,需要关闭全部引擎和网关,重新按顺序启动,先启动数据库相关模块,再启动主引擎,最后启动登录网关。
第六步查看系统权限问题。右键引擎程序,选择以管理员身份运行,操作系统权限不足的时候,引擎没有读取DB文件夹的权限,会出现读取数据库抛出异常。Windows系统开启用户账户控制,会限制程序读取本地文件,右键服务端整个文件夹,打开属性,安全选项卡,给当前用户开启完全控制权限。
第七步排查修改数据库留下的错误记录。如果之前手动修改过物品、技能数据,新增装备或者修改技能参数,很容易产生非法数据。打开数据库编辑器,查看物品数据库最后几行,删除空白行,检查有没有字段内容超出限制,文本过长、非法符号都会触发加载异常。修改完成保存,关闭数据库工具,重启引擎。
故障复现验证步骤,修复完成之后,全部关闭引擎、网关窗口,重新启动。观察引擎日志,不再出现物品数据库、魔法数据库Exception报错,代表数据库加载成功。启动网关,打开客户端登录,测试创建角色、进入地图,不再出现Connection closed。如果依旧断开连接,查看网关日志,网关日志会记录客户端断开的具体原因。
常见误区,不要看到服务器已启动就认为服务正常,SKY引擎会在数据库加载失败的情况下继续运行主程序,但是核心游戏数据无法读取,客户端连接直接断开。不要优先调整客户端,数据库读取失败是服务端一侧问题,客户端修改无法解决根源。不要混用不同来源的db文件,SKY引擎数据库结构兼容性差,跨版本数据库基本都会加载异常。
整套故障的核心逻辑是物品库、魔法库读取失败,服务缺少基础游戏数据,客户端连接之后服务无法返回数据,直接断开连接。优先修复DB文件、路径、权限、版本匹配问题,数据库加载日志不再报错之后,再排查网关端口与客户端连接配置,就能一次性解决这个故障。
传奇SKY引擎单机架设物品魔法数据库加载报错 连接关闭故障完整排查修复教程
来源:
作者:
点击:

