一、配置文件核心问题:端口与服务名冲突
根据你提供的配置文件,无法注册的根源是端口配置冲突与数据库连接异常。
端口冲突:
你的cfg文件中ACCOUNT_PORT设置为9864,但System段POINTLISTENPORT也设为9864。这导致AccountServer与PointServer监听同一端口,引发冲突。修改ACCOUNT_PORT为9954(与LOGINLISTENPORT保持一致)或5815。
服务名与数据库:
SERVERNAME、LOGINNAME、PASSWORD在多个配置文件中需完全一致。检查cfg、ACCServer.ini、GameServer.ini是否均为:
• SERVERNAME = 魔域
• LOGINNAME = test
• PASSWORD = test
二、数据库连接排查:权限与还原
连接权限:
数据库DB_USER和DB_PW均为test,但此用户可能不具备my3数据库的操作权限。进入MySQL命令行执行:
GRANT ALL PRIVILEGES ON my3.* TO 'test'@'127.0.0.1' IDENTIFIED BY 'test';
FLUSH PRIVILEGES;
数据库还原:
若my3数据库为空,注册功能必然失败。需用Navicat执行服务端SQL文件夹下的数据库还原脚本(如my3.sql),通常需按顺序执行account.sql、character.sql、log.sql等。
三、服务端启动顺序与日志
正确启动顺序:
1. MySQL数据库:确保MySQL服务已启动(可通过任务管理器查看mysqld.exe进程)。
2. AccountServer:启动ACCServer.exe,观察日志窗口是否提示“连接数据库成功”及“监听端口9954”。
3. GameServer:启动GameServer.exe,等待地图加载完成(日志提示“服务器启动成功”)。
4. MSGServer:启动MSGServer.exe,用于处理游戏内消息。
日志检查:
若注册时提示“连接服务器失败”,检查ACCServer日志。常见错误及解决:
• “数据库连接失败”:检查DB_IP、DB_USER、DB_PW、DB_NAME是否正确,数据库服务是否启动。
• “监听端口失败”:端口被占用,修改ACCOUNT_PORT为9955等未被占用的端口。
• “账号已存在”:数据库accounts表内已有该账号,需清空或使用新账号注册。
四、单机与外网的特殊设置
单机架设:配置文件中的IP地址可全部使用127.0.0.1,但需确保登录器serverlist.txt中的IP也为127.0.0.1。
外网架设:
• 将ACCOUNT_IP、GAMESERVER_IP、DB_IP、MASTER_IP改为你的公网IP(非路由器自动分配的192.168.x.x)。
• 在路由器设置端口转发(映射9954、5814、9864等端口到服务器内网IP)。
• 关闭服务器防火墙或添加对应端口的入站规则。
总结:先修改端口冲突(ACCOUNT_PORT改为9955),再检查数据库权限与还原,最后按顺序启动服务端并查看日志定位错误。多数注册问题由端口冲突或数据库连接失败导致。
根据你提供的配置文件,无法注册的根源是端口配置冲突与数据库连接异常。
端口冲突:
你的cfg文件中ACCOUNT_PORT设置为9864,但System段POINTLISTENPORT也设为9864。这导致AccountServer与PointServer监听同一端口,引发冲突。修改ACCOUNT_PORT为9954(与LOGINLISTENPORT保持一致)或5815。
服务名与数据库:
SERVERNAME、LOGINNAME、PASSWORD在多个配置文件中需完全一致。检查cfg、ACCServer.ini、GameServer.ini是否均为:
• SERVERNAME = 魔域
• LOGINNAME = test
• PASSWORD = test
二、数据库连接排查:权限与还原
连接权限:
数据库DB_USER和DB_PW均为test,但此用户可能不具备my3数据库的操作权限。进入MySQL命令行执行:
GRANT ALL PRIVILEGES ON my3.* TO 'test'@'127.0.0.1' IDENTIFIED BY 'test';
FLUSH PRIVILEGES;
数据库还原:
若my3数据库为空,注册功能必然失败。需用Navicat执行服务端SQL文件夹下的数据库还原脚本(如my3.sql),通常需按顺序执行account.sql、character.sql、log.sql等。
三、服务端启动顺序与日志
正确启动顺序:
1. MySQL数据库:确保MySQL服务已启动(可通过任务管理器查看mysqld.exe进程)。
2. AccountServer:启动ACCServer.exe,观察日志窗口是否提示“连接数据库成功”及“监听端口9954”。
3. GameServer:启动GameServer.exe,等待地图加载完成(日志提示“服务器启动成功”)。
4. MSGServer:启动MSGServer.exe,用于处理游戏内消息。
日志检查:
若注册时提示“连接服务器失败”,检查ACCServer日志。常见错误及解决:
• “数据库连接失败”:检查DB_IP、DB_USER、DB_PW、DB_NAME是否正确,数据库服务是否启动。
• “监听端口失败”:端口被占用,修改ACCOUNT_PORT为9955等未被占用的端口。
• “账号已存在”:数据库accounts表内已有该账号,需清空或使用新账号注册。
四、单机与外网的特殊设置
单机架设:配置文件中的IP地址可全部使用127.0.0.1,但需确保登录器serverlist.txt中的IP也为127.0.0.1。
外网架设:
• 将ACCOUNT_IP、GAMESERVER_IP、DB_IP、MASTER_IP改为你的公网IP(非路由器自动分配的192.168.x.x)。
• 在路由器设置端口转发(映射9954、5814、9864等端口到服务器内网IP)。
• 关闭服务器防火墙或添加对应端口的入站规则。
总结:先修改端口冲突(ACCOUNT_PORT改为9955),再检查数据库权限与还原,最后按顺序启动服务端并查看日志定位错误。多数注册问题由端口冲突或数据库连接失败导致。

