当前位置 : 145z游戏站 | 热血传奇 | 传奇游戏 | 

手把手教你改传奇网关!解决数据库连接失败问题(附真实案例)

热度:
一、问题现象分析
从你的日志可以看到三个关键错误:
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-281:30:00数据库服务器(60.14.145.16:5600)连接成功...
2024-1-281:30:01游戏网关[0](0.0.0.0:2193)已打开...
```

---

四、常见问题解决方案
4.1连接超时(错误代码10060)
•原因1:远程数据库未开放5600端口

解决方法:联系机房开放端口(需执行命令:`telnet60.14.145.165600`测试连通性)

•原因2:数据库用户权限不足

解决方法:在远程数据库执行:
```sql
GRANTALLPRIVILEGESONmirdb.*TO'remote_user'@'%'IDENTIFIEDBY'remote_pass';
FLUSHPRIVILEGES;
```

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
CREATEUSER'sf_user'@'%'IDENTIFIEDBY'Sf666#';
GRANTALLONmirdb.*TO'sf_user'@'%';
```
3.修改配置文件后重启服务成功

---

重要提醒:
1.修改配置前务必备份原文件(建议压缩整个MirServer文件夹)
2.远程数据库建议使用独立IP(避免与登录服务器IP冲突)
3.如果使用云服务器,需在安全组中放行游戏端口(默认2193/5600)
[顶部]