SQL2000架设传奇:安装还原与ODBC配置全解

来源: 作者: 点击:
SQL2000在传奇架设里的位置需要先厘清。不是所有传奇服务端都走SQL2000,GOM和GEE引擎的常规版本默认用DBC2000读取HeroDB,物品、怪物、技能数据存放在DB文件夹的Paradox表里。SQL2000承接的是另一类服务端,账号、角色、日志这类需要事务和并发写入的数据放在SQL库里,典型数据库名是MudDB、Account、Game、Conlog、Manage这一组。拿到的服务端压缩包里如果带着.dat或.bak备份文件,并且说明里写了“还原到SQL”,才需要走本文的流程。如果包里只有StdItems.DB和Monster.DB,DBC2000就够了,不必强行套用SQL2000。

在Win10或Win11上装SQL2000,默认双击setup会直接失败或装到一半退出。64位系统的SysWOW64目录权限和文件版本是根子上的原因。操作顺序固定:先找到`C:\Windows\SysWOW64`,右键属性、安全、编辑,把Administrators的权限全部勾上。然后从SQL2000安装盘里复制`SQLUNIRL.DLL`,粘贴到SysWOW64目录覆盖同名文件,覆盖时如果提示需要TrustedInstaller权限,先取得所有权再替换。覆盖完成后再双击安装包里的`SETUP.BAT`或`setup.exe`,不要直接点autorun。安装过程中如果弹出“已知兼容性问题”,选“运行程序”继续,不要取消。

安装向导走到“服务账户”界面时,选“对每个服务使用同一账户”,账户类型选“使用本地系统账户”。下一步的“身份验证模式”是整个安装里最关键的一步,必须选“混合模式(Windows身份验证和SQL Server身份验证)”,并在下面给sa账户设一个密码。这个密码后续在ODBC数据源和服务端引擎配置里要原样填写,设成空密码或简单数字即可,老服务端的配置文件对特殊字符支持不好。如果这一步误选了“仅Windows”,装完之后服务端引擎用sa连数据库会直接报“用户登录失败”,只能卸载重装,没有省事的补救路径。

装完重启电脑,打开SQL Server服务管理器,点“开始/继续”,状态栏变成绿色运行才继续往下走。然后打开企业管理器,展开到(local)实例,右键“数据库”新建。数据库名按服务端说明来,常见的是`MudDB`,部分版本要求建多个空库,比如Account、Game、Conlog、Manage,备份文件有几个就建几个,名称和备份文件一一对应。空库建好后,逐个还原:右键目标数据库,所有任务、还原数据库,选“从设备”,点“选择设备”、“添加”,浏览到服务端目录里的.dat或.bak文件,选中后确定。

还原时最容易卡在路径报错上。备份文件是在别的机器上做的,还原时SQL2000会试图把数据文件写到备份记录里的原始路径,如果那个路径在当前机器上不存在,就会提示“找不到路径”或“设备激活错误”。处理方式不在还原向导的第一页,要点顶部的“选项”标签,勾选“在现有文件上移动”,然后把“移至物理文件名”里的两行路径都改成当前SQL2000实例的实际数据目录,比如`D:\Program Files\Microsoft SQL Server\MSSQL\Data\`,文件名保持原样。还原成功后展开数据库的表,能看到Account或角色相关的表结构,才算数据真正进去了。

数据库还原完,服务端引擎仍然读不到数据,因为中间还缺ODBC这一层。打开控制面板的管理工具,进入“数据源(ODBC)”,切到“系统DSN”选项卡,点“添加”,选“SQL Server”驱动。名称填还原时用的数据库名,必须一字不差;服务器填`(local)`;登录验证选“使用用户输入登录ID和密码的SQL Server验证”,ID填`sa`,密码填安装时设的那个;下一步勾选“更改默认的数据库为”,下拉选中对应的库;完成之后点“测试数据源”,显示测试成功才有效。Win10和Win11上如果打开ODBC管理器后找不到SQL Server驱动,或者添加后测试连接失败,检查是不是误开了64位ODBC入口,老服务端和SQL2000驱动通常只注册在32位环境下。

服务端侧的配置分两种情况。像传奇世界这类老引擎,数据库连接参数写在`config.ini`里,找到`[数据库服务器]`段,`name`填数据库名,`server`填`(local)`,`account`填`sa`,`password`填sa密码,`type`保持`databaseserver`不动。GOM或GEE引擎则在控制器配置向导的“数据库配置”里选“SQL”或“ODBC”类型,数据库名称、sa账号、密码逐项填入,不要留在默认的HeroDB或DBC选项上,类型选错引擎不会去连SQL。配置改完后按数据库服务、登录网关、主引擎的顺序启动,登录网关如果报数据库连接失败,回到ODBC测试数据源那一步重新验证,不要反复重启引擎。

DBC2000和SQL2000在同一台机器上并不冲突。SQL2000管账号和角色,DBC2000管物品和怪物,两个可以同时装、同时跑。但要注意,BDE Administrator里建的HeroDB别名路径和SQL的ODBC数据源是两套独立的东西,不要试图把HeroDB指向SQL数据库,引擎对这两种数据源的读取方式不同,混配的结果是服务端能启动但进游戏黑屏或物品全空。先把SQL2000的账号链路跑通,能注册账号、能创建角色、能进到选人界面,再去处理DBC2000那边的物品和爆率,排查问题的时候才不会把两个层面的故障搅在一起。