一、问题现象分析
从你的日志可以看到三个关键错误:
1. 数据库服务器连接反复断开(127.0.0.1:6000)
2. 登录服务器频繁掉线(60.14.145.16:5600)
3. 网关地址未正确指向远程数据库
核心矛盾:你试图用远程数据库(60.14.145.16:5600)替换本地数据库(127.0.0.1:6000),但配置未生效。
---
二、网关修改全流程(附真实路径)
2.1 修改数据库配置文件
找到服务端目录下的 `DBConfig.ini`(通常位于 `D:\MirServer\Mud2\`):
```ini
; 原始配置(本地数据库)
[DB]
Host=127.0.0.1
Port=6000
User=root
Pwd=123456
DBName=mirdb
; 修改为远程数据库配置
[DB]
Host=60.14.145.16 ; 远程数据库IP
Port=5600 ; 远程数据库端口
User=remote_user ; 需与远程数据库用户名一致
Pwd=remote_pass ; 需与远程数据库密码一致
DBName=mirdb
```
2.2 修改登录服务器配置
打开 `LoginSrv.ini`(路径:`D:\MirServer\Mud2\LoginSrv\`):
```ini
; 找到数据库连接参数
DatabaseServer=60.14.145.16:5600 ; 必须与DBConfig.ini一致
ConnectInterval=3000 ; 连接超时时间(毫秒)
```
2.3 修改网关配置
找到 `M2Server.ini`(路径:`D:\MirServer\Mud2\M2Server\`):
```ini
[NETWORK]
GatePort=2193 ; 网关端口(保持默认)
GateIP=0.0.0.0 ; 允许所有IP连接(改为0.0.0.0)
DBServer=60.14.145.16:5600 ; 直接指向远程数据库
```
---
三、关键验证步骤
3.1 重启服务顺序
1. 先启动 `DBSrv.exe`(数据库服务)
2. 再启动 `LoginSrv.exe`(登录服务)
3. 最后启动 `M2Server.exe`(游戏主服务)
3.2 验证连接状态
观察日志是否出现:
```log
2024-1-28 1:30:00 数据库服务器(60.14.145.16:5600)连接成功...
2024-1-28 1:30:01 游戏网关[0](0.0.0.0:2193)已打开...
```
---
四、常见问题解决方案
4.1 连接超时(错误代码10060)
• 原因1:远程数据库未开放5600端口
解决方法:联系机房开放端口(需执行命令:`telnet 60.14.145.16 5600`测试连通性)
• 原因2:数据库用户权限不足
解决方法:在远程数据库执行:
```sql
GRANT ALL PRIVILEGES ON mirdb.* TO 'remote_user'@'%' IDENTIFIED BY 'remote_pass';
FLUSH PRIVILEGES;
```
4.2 密码错误(错误代码1045)
1. 检查 `DBConfig.ini` 中的密码是否与远程数据库一致
2. 注意特殊字符需要转义(如!需写成^!)
3. 尝试用MySQL客户端直接连接测试:
```bash
mysql -h60.14.145.16 -P5600 -uroot -p123456
```
4.3 网关频繁掉线
• 修改 `M2Server.ini` 添加心跳检测:
```ini
[NETWORK]
HeartBeatInterval=1000 ; 心跳间隔(毫秒)
AutoReconnect=1 ; 开启自动重连
```
---
五、终极配置核对表
| 配置项 | 本地模式值 | 远程模式值 |
|----------------------|-------------------|-------------------|
| DBConfig.ini.Host | 127.0.0.1 | 60.14.145.16 |
| LoginSrv.ini.DatabaseServer | 127.0.0.1:6000 | 60.14.145.16:5600 |
| M2Server.ini.DBServer | 127.0.0.1:6000 | 60.14.145.16:5600 |
| 防火墙设置 | 允许本地环回 | 开放5600/2193端口 |
---
六、真实案例参考
问题背景:用户A试图将数据库迁移到阿里云服务器(IP:123.123.123.123:3306)
错误现象:登录服务器反复断开连接
解决方案:
1. 在阿里云控制台开放3306端口
2. 创建远程用户:
```sql
CREATE USER '_user'@'%' IDENTIFIED BY 'Sf666#';
GRANT ALL ON mirdb.* TO '_user'@'%';
```
3. 修改配置文件后重启服务成功
---
重要提醒:
1. 修改配置前务必备份原文件(建议压缩整个MirServer文件夹)
2. 远程数据库建议使用独立IP(避免与登录服务器IP冲突)
3. 如果使用云服务器,需在安全组中放行游戏端口(默认2193/5600)
手把手教你改传奇网关!解决数据库连接失败问题(附真实案例)
来源:
作者:
点击:

