1、查看gcc g++ openssl版本号
gcc --version
g++ --version
openssl version
2、比较合适的版本是 gcc g++ < 7, openssl = 1.1
3、 安装依赖包:
ubuntu:
sudo apt install gcc g++ build-essential curl libtool autoconf libssl-dev mysql-server libmysqlclient-dev
centos:
sudo yum groupinstall "Development Tools"
sudo yum install gcc g++ openssl-devel libtool autoconf mysql-server mysql-devel
4、编译 到kbengine\kbe\src目录,使用make命令:
(1)gcc高于7 需要配置:
#kbe/src/build/common.mak第286行增加
CPPFLAGS += -Wno-format-truncation
(2)在Centos8下,我们编译Kbengine会出现找不到rpc.h头文件的情况:
具体报错如下
sigar_util.c: 在文件作用域:
sigar_util.c:742:10: 致命错误:rpc/rpc.h:没有那个文件或目录
#include <rpc/rpc.h>
^~~~~~~~~~~
这是因为,在Centos8中使用了新库libtirpc。
安装libtirpc
sudo yum -y install libtirpc-devel
5、mysql8.x创建用户和赋予权限,需要分开
#创建用户
create user 'kbe'@'%' identified by 'pwd123456';
#授权
grant all privileges on *.* to 'kbe'@'%';
6、以上是手动编译过程中遇到的坑,编译可以使用make -j4 加速编译
7、启动服务端
(1)下载kbengine/kbengine_demos_assets (github.com),将kbengine_demos_assets拷贝到服务端kbengine项目的根目录下
(2)对 kbengine_demos_assets/start_server.sh赋予可执行权限,启动:
sudo sh start_service.sh
(3)查看logger.log 日志,检查 dbmgr日志,是否执行成功
8、centos 8 编译了mysql 8.0的客户端导致服务启动后,dbmgr 没连上,无法执行sql, 回退 mysql client dev 到 5.7版本,解决问题 :
禁用原阿里源里的mysql:
sudo dnf remove @mysql
sudo dnf module reset mysql && sudo dnf module disable mysql
添加另外一个mysql的源
```
cat /etc/yum.repos.d/mysql.repo
[mysql57-community]
name=MySQL 5.7 Community Server
## baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
```
重新安装:
sudo yum install mysql-server mysql-devel