系统 centos9
这个版本的环境 mysql8 redis odbc 8/9
mysql-connector-odbc-8.3.0-1.el8.x86_64.rpm包放在home目录下
执行安装
cd /home/
sudo dnf install ./mysql-connector-odbc-8.3.0-1.el8.x86_64.rpm
odbc安装完成后,配置odbc表 /etc/odbc.ini
这个是链接源,链接到mysql数据库中的 现在等待mysql安装完成
现在本机链接Mysql测试
关闭防火墙
sudo systemctl stop firewalld && sudo systemctl disable firewalld
开放Mysql root账号外部登录权限
mysql -u root -p
输入mysql密码
查看现有用户/权限
SELECT user, host FROM mysql.user;
为root账户开放权限
UPDATE mysql.user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;
quit
本机现在可以链接上mysql了 说明完成了
odbc表中 修改Mysql的密码
现在创建/导入数据库
数据库分为 区服数据库 / 跨区总数据库
区服数据库为 tlbbdb_ 这个类型 常规区服的现在已经导入
跨区数据库为 tlbbdb_main 跨区数据库中储存了所有区服数据库的角色信息 跨区总数据库已经导入
创建数据库时 数据库规则为 utf8mb4 -- utf8mb4_general_ci
创建好以后 导入数据库表
现在数据库表导入好了
配置Redis 宝塔安装好了直接设置好密码即可
接下来配置服务端 因为我现在给你搭建的是 2个区/1个跨区 所以要解压3个服务端出来
ServerInfo.ini 表
[World]
IP=127.0.0.1
Port=7777 每个区服的监听端口不可一致
[Redis]
IP=127.0.0.1
Port=6379
Password=Zhangxianzhe11015273@ 填写Rides的密码
[Server0] [Server1]
游戏端口和登录端口
这里IP就是Linux的外网IP
WorldInfo.ini 文件重点说明一下 这个东西的话 每个区服/包括跨区服的worldid 都不能一致
并且需要和对应的数据库中的worldid保持一致
比方说我现在配置的是1区,然后worldid我设置为10 然后1区的区服数据库是tlbbdb_10 那么我们来看数据库
t_global 首先是这个表 这里的zongworldid 必须为WorldInfo.ini文件中所设置的ID
t_itemkey 这个表 他的第一列 必须为WorldInfo.ini文件中所设置的ID
ShareMemInfo.ini 文件 就是设置此服务端为哪个数据库的
首先
;区服数据库
DBName=tlbbdb_10 ;ODBC连接名
DBUser=root ;用户名
DBPassword=Zhangxianzhe11015273@ ;密码
这里就是此区唯一的数据库 不可与其他区服重复的
;角色数据库
CharDBName=tlbbdb_main ;ODBC连接名
CharDBUser=root ;用户名
CharDBPassword=Zhangxianzhe11015273@ ;密码
这里就是跨区数据库 也就是说 同一个天外的所有区服,均共用此数据库
这里1区用的就是tlbbdb_10 所以不改
接下来配置2区
我把2区的worldid改为了11 那么现在我们看设置的数据库是tlbbdb_11
那么我们去看看tlbbdb_11里面 这两个表是否正确
现在这两个表给他修改为11
接下来 看tlbbdb_main数据库中的t_var
这个表必须就要有worldid10 和11 的数据 这个表的意思是 worldid10这个区服 角色的guid从多少开始
11又是从多少开始
因为guid这个东西是唯一的 每个角色不一样,所以每个区服的角色跨度是要有的
现在设置跨区服务端的配表 其实还是大同小异的,但是ServerInfo.ini这个文件需要标记他为跨区服务器
;当前是否为T服
CurrentTServer=1
配置完成以后 还是重启一下服务器 reboot
出错了两个地方
- odbc.ini配置好以后,没有拖到服务器中
- 启动验证时报错 ,需要在mysql配置文件 ect/my.cnf中 添加规则
ssl = 1
ssl-ca = /etc/mysql/ca.pem
ssl-cert = /etc/mysql/server-cert.pem
ssl-key = /etc/mysql/server-key.pem
添加到ect/my.cnf的[mysqld]下面 添加好以后记得重启mysql才会生效
现在测试一下