Mariadb支持tokudb的引擎,但官方下载的binary tar包中只有带有glibc_214的才带有tokudb引擎。
顾名思义,带有“glibc_214”的安装包只有在带有glibc 2.14版本的操作系统上才可以安装使用,而centos/redhat6.5上默认的版本是glibc 2.12 。。。。
tokudb官方的提供的mariadb/mysql版本可以直接在centos/redhat6.5上安装,但官方只有MySQL 5.5.39 和 MariaDB 5.5.39版本,也就是说无法使用mysql5.6的一些新特性了。。。
官方的下载地址如下:
http://www.tokutek.com/tokudb-for-mysql/download-community/
如果只是想在mysql5.6上用tokudb的话,可以使用percona编译的版本:
http://www.percona.com/downloads/Percona-Server-5.6/LATEST/binary/tarball/
下载:
Percona-Server-5.6.21-rel69.0-675.Linux.x86_64.tar.gz 和
Percona-Server-5.6.21-rel69.0-675.TokuDB.Linux.x86_64.tar.gz
同时解压就可以用了,该本版支持centos/redhat6.5。
但如果想在mariadb10上使用tokudb就只能自己编译了。。。。
环境准备:
tokudb的编译需要cmake 2.8.9+ 和 gcc 4.7+
本文选用cmake 2.8.9 和 gcc4.8.1。
这2个软件都只能使用源码编译安装。
cmake的很简单,直接下载
wget http://www.cmake.org/files/v2.8/cmake-2.8.9.tar.gz
然后解压进行编译
./configure
make & make install
对于gcc 4.8.1的安装 可以参考我转载的博文《 转:CentOS 6.4 编译安装 gcc 4.8.1》
下载mariadb源码
https://downloads.mariadb.org/mariadb/10.0.14/
编译带tokudb的mariadb
首先需要修改tokudb的cmake编译文件,去掉fuse-linker-plugin相关内容
修改mariadb-10.0.14/storage/tokudb/ft-index/cmake_modules/TokuSetupCompiler.cmake
去掉所有的 -fuse-linker-plugin :
# set(CMAKE_C_FLAGS_RELWITHDEBINFO "-flto -fuse-linker-plugin ${CMAKE_C_FLAGS_RELWITHDEBINFO} -g -O3 -UNDEBUG")
# set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-flto -fuse-linker-plugin ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g -O3 -UNDEBUG")
# set(CMAKE_C_FLAGS_RELEASE "-g -O3 -flto -fuse-linker-plugin ${CMAKE_C_FLAGS_RELEASE} -UNDEBUG")
# set(CMAKE_CXX_FLAGS_RELEASE "-g -O3 -flto -fuse-linker-plugin ${CMAKE_CXX_FLAGS_RELEASE} -UNDEBUG")
# set(CMAKE_EXE_LINKER_FLAGS "-g -fuse-linker-plugin ${CMAKE_EXE_LINKER_FLAGS}")
# set(CMAKE_SHARED_LINKER_FLAGS "-g -fuse-linker-plugin ${CMAKE_SHARED_LINKER_FLAGS}")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-flto
${CMAKE_C_FLAGS_RELWITHDEBINFO} -g -O3 -UNDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-flto ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g -O3 -UNDEBUG")
set(CMAKE_C_FLAGS_RELEASE "-g -O3 -flto
${CMAKE_C_FLAGS_RELEASE} -UNDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE "-g -O3 -flto
${CMAKE_CXX_FLAGS_RELEASE} -UNDEBUG")
set(CMAKE_EXE_LINKER_FLAGS "-g
${CMAKE_EXE_LINKER_FLAGS}")
set(CMAKE_SHARED_LINKER_FLAGS "-g
${CMAKE_SHARED_LINKER_FLAGS}")
然后是/home/gao-compile/mariadb-10.0.14/storage/tokudb/CMakeLists.txt
去掉所有的 -fuse-linker-plugin :
#SET(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -flto -fuse-linker-plugin")
#SET(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO} -flto -fuse-linker-plugin")
SET(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -flto")
SET(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO} -flto")
然后进行编译:
cd mariadb-10.0.14
mkdir release
./BUILD/compile-pentium64-max --prefix=/home/gao-compile/mariadb-10.0.14/release
make install
然后在/home/gao-compile/mariadb-10.0.14/release/lib/plugin 目录中找到 ha_tokudb.so动态库。
这个就是我们要的东西了!
注:其实可以直接在mariadb-10.0.14/storage/tokudb目录中直接进行编译,而不用去编译整个mariadb,因为编译出来的也无法使用, mysqld可执行程序依赖GLIBCXX_3.4.15
[root@GXX release]# ldd bin/mysqld
bin/mysqld: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by bin/mysqld)
安装使用tokudb
从mariadb官网下载10.0.14的不带tokudb的可执行程序tar包,然后将我们编译好的tokudb.so拷贝到
[maradb10.0.14]/lib/plugin/下
然后安装这个mariadb,然后
顾名思义,带有“glibc_214”的安装包只有在带有glibc 2.14版本的操作系统上才可以安装使用,而centos/redhat6.5上默认的版本是glibc 2.12 。。。。
tokudb官方的提供的mariadb/mysql版本可以直接在centos/redhat6.5上安装,但官方只有MySQL 5.5.39 和 MariaDB 5.5.39版本,也就是说无法使用mysql5.6的一些新特性了。。。
官方的下载地址如下:
http://www.tokutek.com/tokudb-for-mysql/download-community/
如果只是想在mysql5.6上用tokudb的话,可以使用percona编译的版本:
http://www.percona.com/downloads/Percona-Server-5.6/LATEST/binary/tarball/
下载:
Percona-Server-5.6.21-rel69.0-675.Linux.x86_64.tar.gz 和
Percona-Server-5.6.21-rel69.0-675.TokuDB.Linux.x86_64.tar.gz
同时解压就可以用了,该本版支持centos/redhat6.5。
但如果想在mariadb10上使用tokudb就只能自己编译了。。。。
环境准备:
tokudb的编译需要cmake 2.8.9+ 和 gcc 4.7+
本文选用cmake 2.8.9 和 gcc4.8.1。
这2个软件都只能使用源码编译安装。
cmake的很简单,直接下载
wget http://www.cmake.org/files/v2.8/cmake-2.8.9.tar.gz
然后解压进行编译
./configure
make & make install
对于gcc 4.8.1的安装 可以参考我转载的博文《 转:CentOS
下载mariadb源码
编译带tokudb的mariadb
首先需要修改tokudb的cmake编译文件,去掉fuse-linker-plugin相关内容
修改mariadb-10.0.14/storage/tokudb/ft-index/cmake_modules/TokuSetupCompiler.cmake
去掉所有的 -fuse-linker-plugin :
#
#
#
#
#
#
然后是/home/gao-compile/mariadb-10.0.14/storage/tokudb/CMakeLists.txt
去掉所有的 -fuse-linker-plugin :
#SET(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -flto -fuse-linker-plugin")
#SET(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO} -flto -fuse-linker-plugin")
SET(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -flto")
SET(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO} -flto")
然后进行编译:
cd mariadb-10.0.14
mkdir release
./BUILD/compile-pentium64-max --prefix=/home/gao-compile/mariadb-10.0.14/release
make install
然后在/home/gao-compile/mariadb-10.0.14/release/lib/plugin 目录中找到 ha_tokudb.so动态库。
这个就是我们要的东西了!
注:其实可以直接在mariadb-10.0.14/storage/tokudb目录中直接进行编译,而不用去编译整个mariadb,因为编译出来的也无法使用, mysqld可执行程序依赖GLIBCXX_3.4.15
[root@GXX release]# ldd bin/mysqld
bin/mysqld: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by bin/mysqld)
安装使用tokudb
从mariadb官网下载10.0.14的不带tokudb的可执行程序tar包,然后将我们编译好的tokudb.so拷贝到
[maradb10.0.14]/lib/plugin/下
然后安装这个mariadb,然后
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
然后启动mariadb
然后登录并执行
INSTALL SONAME 'ha_tokudb';
然后执行show engines,应该可以看到tokudb
最后就爱干啥干啥了 ^-^
转载请注明转自高孝鑫的博客。