当前位置 : 145z游戏站 | 诛仙 | 技术教程 | 

诛仙单机架设gsql报错排查:连接、端口、认证与库文件问题处理

热度:
诛仙单机架设里碰到 gsql 报错,通常不是“数据库坏了”,而是连接地址、端口、用户名密码、认证方式、环境变量或库文件版本不对。排查时先看报错原文,再按启动顺序检查:虚拟机网络、服务端是否拉起、数据库端口是否在监听、gsql 命令参数是否正确。

常见报错与处理

gsql: could not connect to server: No route to host
这类提示说明 gsql 找不到目标主机或端口。重点检查 -h 和 -p 参数。
诛仙单机端多数使用虚拟机,VMnet8 子网通常配置为 192.168.200.0 段,主机连接地址常见为 192.168.200.1 或虚拟机内网地址。
如果地址写错、网段不一致、防火墙拦截,都会连不上。可以先用 ping、telnet 或 nc 测试端口是否通。

gsql: FATAL: Invalid username/password, login denied
这是用户名或密码错误。gsql 连接时密码通常在回车后单独输入,不要凭记忆乱改。
诛仙单机端里,数据库账号密码可能写在服务端配置、GM工具或启动脚本里。需要以当前版本实际配置为准,不要随意套用其他版本的默认密码。

gsql: FATAL: Forbid remote connection with trust method!
说明数据库禁止远程使用 trust 认证。需要检查 pg_hba.conf 或数据库认证配置。
单机环境下不建议随便放开远程信任认证,尤其是 openGauss 类数据库,修改认证文件时要确认主节点相关设置没有被破坏。

gsql: connect to server failed: Connection timed out
这表示能发起连接,但数据库没有在指定地址和端口正常应答。先确认数据库服务是否已经启动,再确认端口是否正确。
如果端口不是默认的 5432、26000 或其他版本指定端口,gsql 必须显式带上 -p。端口写错也会超时。

gsql: wait xxx.xxx.xxx.xxx:xxxx timeout expired
这通常是主机或端口写错,也可能存在网络不通、数据库启动慢、认证超时。
gsql 建立连接时有超时限制,如果数据库没有在限定时间内完成认证,客户端会退出。
排查顺序:确认数据库进程存在;确认端口监听;确认防火墙放行;确认账号密码正确。

The “libpq.so” loaded mismatch the version of gsql
这是库文件版本不匹配。gsql 依赖的 libpq.so 和客户端版本不一致,就会出现连接失败或符号查找错误。
可以用 ldd gsql 查看实际加载的库路径,再通过 LD_LIBRARY_PATH 指向正确版本的库目录。
如果系统里同时存在 PostgreSQL、openGauss、GBase 等不同版本的客户端库,更容易互相干扰。

gsql: symbol lookup error: undefined symbol: libpqVersionString
同样属于库文件冲突。常见原因是环境里混入了其他版本的 libpq.so。
处理办法是先确认 gsql 来自哪个数据库套件,再把对应 bin、lib 目录加入 PATH 和 LD_LIBRARY_PATH,避免调用到旧库。

提示端口 unknown 或 PID 文件不存在
如果提示端口未知,先确认数据库实际端口是否已经变更。端口正确但仍报错,可能是数据库服务未启动。
如果提示 PID 文件不存在,说明数据库进程可能没有运行,或者上次异常退出后残留状态未清理。需要先确认数据库是否正常拉起。

第一次使用要求修改密码
部分 openGauss 类数据库首次使用会强制修改初始密码。需要先按提示修改角色密码,再重新连接。
如果忘记初始密码,需要按对应版本提供的方式关闭初始密码修改限制或重置密码,不能直接跳过。

gsql 能连,但游戏仍无法登录
这种情况不一定是 gsql 本身的问题。诛仙单机端通常还有 gdeliveryd、gamedbd、uniquenamed 等服务,端口、IP、库名、账号都要一致。
如果服务端配置里数据库地址仍指向旧 IP,或者端口被改成 1989、29100、29400 等自定义值,就需要按当前版本实际配置核对。
修改 gamesys.conf、authd.conf、table.xml 等文件后,通常需要重启对应服务才能生效。

排查步骤

第一步,确认虚拟机网络。
VMnet8 子网一般设为 192.168.200.0,主机与虚拟机需在同一网段。
如果虚拟机没有获取到正确 IP,gsql 即使参数写对也会连不上。

第二步,确认数据库服务是否启动。
不要只启动游戏客户端,要先确认数据库进程和端口已经监听。端口不通时,gsql、GM工具、登录服务都会失败。

第三步,核对 gsql 命令参数。
常用格式类似:
gsql -h 数据库地址 -p 端口 -d 库名 -U 用户名
地址、端口、库名、用户名必须与当前服务端配置一致。

第四步,检查认证配置。
密码错误、trust 限制、远程连接限制都会导致连接被拒绝。单机测试时也要避免把认证文件改乱,尤其是主节点相关条目。

第五步,检查环境变量和库文件。
PATH、LD_LIBRARY_PATH、GAUSSHOME 等变量如果指向错误目录,gsql 可能调用到不匹配的库。
多版本数据库共存时,优先使用当前服务端配套的那套客户端工具。

第六步,核对服务端数据库配置。
诛仙单机端里,数据库连接信息可能分散在多个配置文件中。修改后必须重启服务,否则仍会使用旧配置。

第七步,查看日志。
数据库日志、服务端启动日志、SecureCRT 输出都能帮助定位。只看 gsql 报错容易漏掉真正的失败点,比如端口未监听、认证失败、服务未拉起。

实用检查点

先确认数据库地址和端口是否可达。
再确认用户名、密码、库名是否正确。
再确认 pg_hba.conf 或认证策略是否允许当前连接。
再确认 libpq.so 与 gsql 版本是否一致。
最后确认游戏服务端配置是否与数据库实际地址、端口、账号一致。

多数 gsql 问题都集中在网络不通、端口错误、认证失败、库版本冲突这四类。先把数据库本身跑通,再处理游戏服务端连接,比直接改客户端补丁更有效。
[顶部]