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.youkuaiyun.com/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