背景

项目目前使用的Sequoiadb数据库,撑不住每小时千万的数据量了,所以领导安排研究TokuDB。

安装TokuDB引擎之前需要先安装MySQL,而且推荐的是Percona MySQL。本文选择通过仓库安装的方式,在CentOS上安装Percona MySQL和TokuDB,由于官网有些操作不够不完整而且有部分不一致,所以安装过程并不顺利,碰到了几个小问题,在此一并整理。

 

Percona MySQL安装

1 安装Percona MySQL的仓库

 

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

 

安装完成,出现如下信息:

TokuDB引擎安装详解_db数据库

2 测试仓库

 

yum list | grep percona

 

得到如下信息,说明正常可用

TokuDB引擎安装详解_官网_02

3 安装Percona MySQL

 

yum install Percona-Server-server-57

 

安装Percona Mysql5.7,一路输入y,安装成功如下:

TokuDB引擎安装详解_官网_03

MySQL密码修改

1 启动mysql服务

 

service mysql start

service mysql restart

service mysql stop

service mysql status

使用service mysql start启动mysql服务。

 

2 使用临时密码登录并修改密码

 

grep ‘temporary password’ /var/log/mysqld.log

TokuDB引擎安装详解_linux_04

找到该文件中的临时密码,并以此登录mysql

TokuDB引擎安装详解_db数据库_05

注意,mysql有密码安全机制,所以设置的密码需要足够复杂,并记录下来。

 

3 修改编码

编辑/etc/my.cnf文件,在[mysqld]下面添加一行(没有[mysqld]就添加一行),不能再写以前的default_character_set了,必须是default-character-set=utf8 。

 

[mysqld]

character_set_server=utf8

 

TokuDB安装

1 安装jemalloc,并查看安装信息:

 

yum install jemalloc

rpm -qa |grep jemalloc

rpm -ql jemalloc-3.6.0-1.el6.x86_64

 

第一步完成后,执行第二步,得到安装的版本信息,再执行第三步,找到安装文件的信息如下:

TokuDB引擎安装详解_db数据库_06

2 配置依赖

编辑/etc/my.cnf,添加jemalloc的地址,就是上图.so.1后缀文件全路径。(官网的路径为malloc-lib= /path/to/jemalloc,百度才得到真正的值是上图的文件路径)

 

[mysqld_safe]

malloc-lib=/usr/lib64/libjemalloc.so.1

 

3 检查Transparent huge pages

关闭操作:

 

echo never > /sys/kernel/mm/transparent_hugepage/enabled

echo never > /sys/kernel/mm/transparent_hugepage/defrag

 

4 安装TokuDB

版本必须和Percona的版本一致,我们前面安装的是Percona5.7,所以此处也需要安装toku5.7,否则提示版本冲突。官网Percona的安装步骤是5.7,而后面的TokuDB的安装用的是5.6,所以出现了这个不一致。这里调整下版本号就可以了。

 

yum install Percona-Server-tokudb-57.x86_64

 

安装完成如下

TokuDB引擎安装详解_安装失败_07

TokuDB引擎启动

1 启动引擎:直接使用shell命令ps_tokudb_admin:

 

ps_tokudb_admin –enable -uroot -p

输入Mysql的root帐号密码,完成启动。命令字符都是英文输入法下的短横杠。

 

此操作,出现了一个错误,SELinux的配置有问题,导致安装失败。

TokuDB引擎安装详解_linux_08

解办法:解决办法:编辑/etc/selinux/config文件修改selinux=permissive,保存之后,执行下面代码修正selinux的值为0.

 

setenforce 0

ps_tokudb_admin –enable -uroot -p

 

2 引擎插件安装成功,截图如下:

TokuDB引擎安装详解_安装失败_09

 

3 重启mysql服务

 

service mysql restart

 

4 查看引擎

执行mysql -u root -p,登录mysql,执行show engines,得到下图:

TokuDB引擎安装详解_mysql_10

至此,终于成功安装了tokuDB插件了。

 

启示录

其实就是安装操作步骤多而已,算不上复杂,就是要有耐心。主要碰到了几个小问题。

 

第一,安装了Percona MySQL5.7后,再根据官网提示安装TokuDB的版本是5.6,结果安装失败,提示了一个conflict 5.7和TokuDB的5.6冲突。机智如我,试着改成5.7,竟然就好了。

 

第二,TokuDB要求SELinux的值为permitive或者disabled,同时要求hugepage=disabled。安装有如下提示信息:

 

INFO: Transparent huge pages are enabled (should be disabled).

Checking TokuDB engine plugin status…

INFO: TokuDB engine plugin is not installed.

 

表明没有安装成功。修正系统配置后,再试就好了。

 

结论就是:安装操作太繁琐了,能否封装成一个安装shell ,一键执行呢,不用照着安装手册,手动敲击这些命令。上个月就写过Sequoiadb数据库的安装shell,哪天有空了再捣鼓下,看看能否解放我们的双手呢。