CentOS下编译XeLabs TokuDB

1. 介绍

XeLabs TokuDB 官方源码: https://github.com/XeLabs/tokudb
支持: CentOS, Ubuntu
编辑环境要求: gcc > 4.8 cmake > 3.5

2. CentOS 6下编译举例

2.1 基本准备

yum install centos-release-scl

yum install cmake3
yum install devtoolset-3-gcc-c++.x86_64
yum install devtoolset-3-gcc.x86_64
如果是CentOS7就不需要安装devtoolset这个包,系统自带的gcc版本就可以。

启动新版本gcc
source /opt/rh/devtoolset-3/enable

安装cmake3
yum install cmake3
(如果找不到cmake3 请安装epel源)

yum install zlib-devel.x86_64
yum install libaio-devel
yum install ncurses-devel
yum install readline.x86_64 readline-devel.x86_64

2.2 下载tokudb代码

git clone https://github.com/XeLabs/tokudb.git
cd tokudb
git submodule init
git submodule update

编译参考:

vim cc.sh

cmake3 .\
  -DCMAKE_BUILD_TYPE=RelWithDebInfo\
  -DBUILD_CONFIG=mysql_release\
  -DFEATURE_SET=community\
  -DWITH_EMBEDDED_SERVER=OFF\
  -DTOKUDB_VERSION=7.5.6\
  -DBUILD_TESTING=OFF\
  -DWITHOUT_ROCKSDB_STORAGE_ENGINE=1 \
  -DWITH_BOOST=extra/boost/boost_1_59_0.tar.gz\
  -DCMAKE_INSTALL_PREFIX=/usr/local/tokudb 
  • 执行参数配置初始化 sh cc.sh
  • 待执行成功后,提示Configure done
    make
    make install对于CentOS6,CentOS7的同学,如果就是想偿个鲜不想编译的话可以在下面地址下载:
    https://pan.baidu.com/s/1qYRyH3I
  • 因为TokuDB禁用hugepage:
    echo never > /sys/kernel/mm/transparent_hugepage/enabled

后面和正常基于二进制安装MySQL一样。

3. Tips

在sh cc.sh 中出错,需要删除:CMakeCache.txt
rm -rf CMakeCache.txt
有时还需要删除:
rm -rf CMakeFiles/*

如果因为出错提示缺了某个包,安装上去后,再继续。

4. 备注

devtoolset-2 目前已经有gcc的参数不支持,编译通不过(2017/12/08)
devtoolset-3 在CentOS 6上遇到gcc的段错误,如果没有段错误,devtoolset-3是可以用的。(2017/12/08)
devtoolset-4 目前在CentOS 6上测试通过(2017/12/08)
CentOS7 自带gcc可以编译通过(2017/12/08)

编译中如果遇到其它诡异问题,可以加入QQ群:579036588 联系群主获取支持。如果你做了其它版本的发行包,也可以联系群主,一块提供一些发行包。

案例推荐

TokuDB在生产环境的应用场景(zabbix也可以) http://blog.51cto.com/412166174/2050739

作者:吴炳锡 来源:http://wubx.net/ 联系方式: wubingxi#163.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.