在搭建网狐系统时,登录服务器启动后如果弹出红色提示信息,大多数情况下是由于缺少数据库的链接服务器配置。登录服务器依赖多个数据库交叉读取数据,如果这些数据库之间的链接没建立好,就会在启动阶段报错,提示某些对象不存在或权限不足。
解决方法是手动添加这些数据库的链接服务器,通过 SQL Server 的 sp_addlinkedserver
和 sp_serveroption
命令进行配置。
以下是完整的 SQL 脚本,建议使用 SQL Server Management Studio 连接数据库后逐条执行:
sp_addlinkedserver 'QPAccountsDBLink', 'QPAccountsDBLink', 'SQLNCLI','(local)',null,null,'QPAccountsDB'
go
sp_addlinkedserver 'QPGameMatchDBLink', 'QPGameMatchDBLink', 'SQLNCLI','(local)',null,null,'QPGameMatchDB'
go
sp_addlinkedserver 'QPGameScoreDBLink', 'QPGameScoreDBLink', 'SQLNCLI','(local)',null,null,'QPGameScoreDB'
go
sp_addlinkedserver 'QPPlatformDBLink', 'QPPlatformDBLink', 'SQLNCLI','(local)',null,null,'QPPlatformDB'
go
sp_addlinkedserver 'QPRecordDBLink', 'QPRecordDBLink', 'SQLNCLI','(local)',null,null,'QPRecordDB'
go
sp_addlinkedserver 'QPTreasureDBLink', 'QPTreasureDBLink', 'SQLNCLI','(local)',null,null,'QPTreasureDB'
go
这段脚本的作用是将本地的几个主要数据库注册为链接服务器,便于系统内部通过链接名进行调用。
配置完成后,还需开启 RPC
和 RPC OUT
选项,否则远程过程调用仍然会被限制:
exec sp_serveroption @server='QPAccountsDBLink', @optname='rpc', @optvalue='TRUE'
exec sp_serveroption @server='QPAccountsDBLink', @optname='rpc out', @optvalue='TRUE'
如果其他数据库也有远程调用需求,可以对对应的链接服务器继续执行相同设置。
配置完成后,重启登录服务器,红色提示通常会消失。如果依旧存在错误提示,建议检查:
- 数据库是否已正确还原;
- 链接名是否与程序内写死的别名一致;
- 当前SQL实例是否有权限访问其他数据库。
这些设置在网狐系统中虽然只是一次性操作,但如果漏了,登录服务器几乎无法正常启动,建议在初始化部署文档中记录清楚,作为标准流程的一部分。
仅限技术交流,禁止商用!