先上结论:
登录trinitycore服务器的时候,显示服务器离线,原来是mysql里数据库flag设置为2离线状态了。修改flag的值为0,服务器就在线了,问题解决。
问题:
登录trinitycore服务器的时候,显示服务器离线。
最离奇的地方在于:有的机器登录没问题,有的机器登不上。
原来是只要以前登录成功过,就能登录。如果以前没登录成功过,会进去选服务器界面,而该服务器处于离线状态,无法选中,也就无法登录。
解决问题
针对这样奇异的情况,我一开始是麻爪的,因为根本找不到问题所在啊!
刚开始怀疑是登录服务器没启动,但是如果这样,最一开始应该就登不上,到不了选服务器的界面。
后来从网上搜索,有人提到可能是服务器的状态设置为“离线”了。进入服务器,进入mysql控制台:
sudu mysql
使用auth数据库
use auth
查看服务器状态设置:
select * from realmlist;
发现果然flag被设置为了离线“2” :
sudo mysql
[sudo] password for wow:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 181
Server version: 8.0.41-0ubuntu0.22.04.1 (Ubuntu)Copyright (c) 2000, 2025, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> use auth;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> select * from realmlist;
+----+-----------+-----------------+--------------+-----------------+------+------+------+----------+----------------------+------------+-----------+
| id | name | address | localAddress | localSubnetMask | port | icon | flag | timezone | allowedSecurityLevel | population | gamebuild |
+----+-----------+-----------------+--------------+-----------------+------+------+------+----------+----------------------+------------+-----------+
| 1 | Trinity | 114.115.136.249 | 127.0.0.1 | 255.255.255.0 | 8085 | 0 | 2 | 16 | 0 | 0 | 12340 |
| 2 | NewRealm | 114.115.136.249 | 127.0.0.1 | 255.255.255.0 | 8086 | 0 | 0 | 16 | 0 | 0 | 12340 |
| 4 | TestSpeed | 192.168.1.12 | 127.0.0.1 | 255.255.255.0 | 8085 | 0 | 2 | 16 | 0 | 0 | 12340 |
+----+-----------+-----------------+--------------+-----------------+------+------+------+----------+----------------------+------------+-----------+
3 rows in set (0.00 sec)
找到问题,解决起来就很方便了,重新设置过来即可,使用update命令,将1号服务器的flag设为0,update realmlist set flag="0" where id="1";:
update realmlist set flag="0" where id="1";
几秒以后,在服务器选择界面就可以看到服务器1变成在线状态,原来不能登录的也可以登录上来了。