TokuDB引擎安装详解

来源:互联网 发布:纱窗修补胶带 淘宝 编辑:程序博客网 时间:2024/05/29 09:25

背景

项目目前使用的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

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

这里写图片描述

2 测试仓库

yum list | grep percona

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

这里写图片描述

3 安装Percona MySQL

yum install Percona-Server-server-57

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

注意,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

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

这里写图片描述

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引擎启动

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

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

此操作,出现了一个错误,SELinux的配置有问题,导致安装失败。
这里写图片描述

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

setenforce 0
ps_tokudb_admin –enable -uroot -p

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

这里写图片描述

3 重启mysql服务

service mysql restart

4 查看引擎
执行mysql -u root -p,登录mysql,执行show engines,得到下图:

这里写图片描述

至此,终于成功安装了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,哪天有空了再捣鼓下,看看能否解放我们的双手呢。