Centos部署KBengine

Centos部署KBengine

安装Mysql5.7

建议只使用5.7版本,其他版本不建议使用。

添加仓库

sudo rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

确认

sudo yum repolist all | grep mysql | grep enabled

安装

sudo yum -y install mysql-community-server

如果出现这个

The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.


 Failing package is: mysql-community-common-5.7.42-1.el7.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

用这个修复

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

然后从新安装
启动

sudo systemctl start mysqld

设置系统启动时自动启动

sudo systemctl enable mysqld

查看启动状态

sudo systemctl status mysqld

CentOS上的root默认密码可以在文件/var/log/mysqld.log找到,通过下面命令可以打印出来

cat /var/log/mysqld.log | grep -i 'temporary password'

执行下面命令进行安全设置,这个命令会进行设置root密码设置,移除匿名用户,禁止root用户远程连接等

mysql_secure_installation

第一步输入密码,用刚才查到的密码
第二步输入新密码,注意强度
第三步移除匿名用户,回答Y
第四允许远程登录,这个可以后面改。
第五测试数据库,点Y

修改my.cnf

vim /etc/my.cnf

设置数据库编码为utf8
在[mysqld],[client],[mysql]节点下添加编码设置

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

重启Mysql即可

systemctl restart mysqld

如果要设置root远程登录可以:

mysql -u root -p
use mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码!!' WITH GRANT OPTION;


mysql> FLUSH PRIVILEGES;

执行如下语句,如果能成功连接上就证明远程登录可用,注意把密码和IP换成你实际的密码和IP。

[root@localhost ~]# mysql -uroot -p密码 -h 192.168.170.128

技巧

查询数据库安装位置可以用 where mysql

添加Centos用户

配置用户
添加kbe1用户

adduser kbe1
passwd kbe1

密码设置:kbeuser1234567
设置uid,同组游戏服设置相同的uid
之后我们就可以使用这个密码来登录linux了。

usermod -u 101 kbe1

配置KBEngine

上传kbe引擎
解压

tar -zxvf kbengine-2.5.12.tar.gz  -C /mnt

把kbengine-2.5.12目录改成server
进入server目录
修改vim .bashrc

vim /mnt/server/.bashrc

放入如下内容

ulimit -c unlimited
export KBE_ROOT=/mnt/server/
export KBE_RES_PATH=$KBE_ROOT/kbe/res/:$KBE_ROOT/assets/:$KBE_ROOT/assets/scripts/:$KBE_ROOT/assets/res/
export KBE_BIN_PATH=$KBE_ROOT/kbe/bin/server/

生效

source /mnt/server/.bashrc

添加数据库用户:

grant all privileges on . to kbe1@'%' identified by 'Pd123456';
grant select,insert,update,delete,create,drop on . to kbe1@'%' identified by 'Pd123456';
FLUSH PRIVILEGES;
set password for kbe1 = password('Pd123456'); 
quit;

测试是否可以连接可以用下面的语法

mysql -ukbe1 -p'Pd123456 -hlocalhost -P3306

优化Centos网络

用引擎自带的py脚本优化
kbe\tools\server\linux\socket_optimization.sh

服务端脚本

把最新代码(scripts)从assets拷贝到assets-server
修改游戏配置
asserts-server/res/server/kbengine.xml

            <externalAddress> 你的IP地址 </externalAddress>                                                        <!-- Type: String -->
            <!-- 自动备份的时间(秒)
                    (Automatic backup time period(secs)) 
            -->
            <backupPeriod> 500 </backupPeriod>

    </baseapp>
    <loginapp>
            <externalAddress> 你的IP地址 </externalAddress>                                                        <!-- Type: String -->
    
    </loginapp>

还有数据库部分的用户kbe1和密码
还要批量修改kbe引擎目录配表kbe\res\server\kbengine_defaults.xml,更改其他pwd123456的默认密码为用户密码。

编译引擎

查看openssl version -a,是否安装, 如果没有自行安装
如果没有gcc,需要安装

yum -y install gcc
yum -y install gcc-c++

安装auto

yum install autoconf

安装automake

yum install automake

安装libtool

yum install libtool

安装mysql-devel

yum install mysql-devel

安装zlib-devel

yum install zlib-devel

进入引擎的src目录

cd /mnt/server/kbe/src

chmod -R 755 .

开始编译

make

注意:

1: 如果使用了其他版本的编译器最好重编译openssl、log4cxx与其他(kbengine/kbe/src/libs/*a.)。
2: mysql_config在某些操作系统版本上可能不是这个路径地址 /usr/bin/mysql_config
你可以手动修改kbengine/kbe/src/build/common.mak其中MYSQL_CONFIG_PATH=/usr/bin/mysql_config。
3: 在Linux上编译之后可能会出现Python解释器无法初始化而导致无法启动服务端的问题 (这是一个Python的bug,参看:http://bugs.python.org/issue11320)
你可以执行如下命令解决这个问题

[root @ localhost ~] cd kbengine/src/lib/python
[root @ localhost ~] ./configure
[root @ localhost ~] make
[root @ localhost ~] make install

开服的sh脚本,首行添加

cd /mnt/server/assets

开服请使用kbe1用户开服,另外使用xshell方便快捷,可以编辑按钮执行命令。
开服指令

sh /mnt/server/assets/start_server.sh

关服指令

sh /mnt/server/assets/safe_kill.sh

查询指令

python /mnt/server/kbe/tools/server/pycluster/cluster_controller.py

杀死服务

sh /mnt/server/assets/kill_server.sh

技巧

查看某个端口谁使用 netstat -alnp |grep 20005

LOG4配置
正式开服后。log太大,可以修改kbe/res/server/log4xx_properties_defaults/baseapp等
把log4j.rootLogger=debug, R改为更高级的log4j.rootLogger=WARN, R

部署完毕后,要把目录权限给kbe,之后的维护最好使用kbe用户来操作,防止kbe没文件读写权限。

对于配置文件UDP设置,我们可以增大BUF的大小到512(默认128),根据自己的需求。

			<readPacketsQueueSize>
				<internal>				1024		</internal>
				<external>				512			</external>
			</readPacketsQueueSize>

			<!-- Equivalent to TCP SND_BU, unit is the number of UDP-packages -->
			<writePacketsQueueSize>
				<internal>				1024		</internal>
				<external>				512			</external>
			</writePacketsQueueSize>

windowOverflow的大小也可以增加receive的bytes/external

猜你喜欢

转载自blog.csdn.net/thinbug/article/details/130826655