1. 安装
该部分整理自山羊博客的AliSQL 源码编译,致敬!
1.1 编译环境准备(CentOS 6.7)
CentOS 和 Ubuntu 环境的区别就在这一步,CentOS yum 源里的 gcc 版本是 4.4 的,不满足需求,可以通过我之前介绍过的 devtoolset 来安装高版本 gcc,devtoolset 目前最新套装是 devtoolset-4,包含 gcc 5.2。
yum install centos-release-scl -y
yum install devtoolset-4-gcc-c++ devtoolset-4-gcc -y
yum install cmake git -y
yum install ncurses-devel openssl-devel bison -y
1.2 从 GitHub clone 代码
git clone https://github.com/alibaba/Alisql.git
1.3 cmake 配置
在配置前,要先设置下环境变量,这样才能用到 devtoolset-4 套装里的gcc。更多cmake参数。
scl enable devtoolset-4 bash
cmake . \
-DCMAKE_BUILD_TYPE="Release" \ -DCMAKE_INSTALL_PREFIX="/opt/alisql" \ -DWITH_EMBEDDED_SERVER=0 \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_CSV_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DWITH_TOKUDB_STORAGE_ENGINE=1
1.4 编译安装
make -j4 && make install
1.5 添加环境变量
export PATH=/opt/alisql/bin:$PATH
1.6 Disabling Transparent Hugepages for TokuDB
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
2. 启动
# 添加MysqL组+用户
groupadd MysqL
useradd -M -s /sbin/nologin -g MysqL MysqL
mkdir -p /data/alisql
chown -R MysqL:MysqL /data/alisql
# MysqL_install_db设置的datadir必须跟/etc/my.cnf里的datadir相同,否则报错([ERROR] Fatal error: Can't open and lock privilege tables: Table 'MysqL.user' doesn't )
# http://blog.csdn.net/leshami/article/details/41801395
cd /opt/alisql
scripts/MysqL_install_db --user=MysqL --datadir=/data/alisql
cp /opt/alisql/support-files/my-default.cnf /etc/my.cnf
sed -i '/^\[MysqLd\]$/{
a\
basedir = /opt/alisql
a\
datadir = /data/alisql
a\
port = 3306
}' /etc/my.cnf
# 方法1: 直接运行MysqLd_safe
/opt/alisql/bin/MysqLd_safe
# 方法2: 使用service启动
cp support-files/MysqL.server /etc/init.d/MysqLd
service MysqLd start
3. 关闭
# 方法1: 直接运行MysqLadmin
/opt/alisql/bin/MysqLadmin -uroot shutdown
# 方法2: 使用service方式关闭
service MysqLd stop
4. Help
/opt/alisql/bin/MysqL --help --verbose