前言
AliSQL 在 2016 云栖大会宣布开放源代码之后,迅速就获得了广泛的关注,目前(2016-10-27) star 数目已达 1187,欢迎访问 AliSQL GitHub 项目关注。社区反应也非常活跃,在 Issue 中提了不少反馈建议,其中有一部分是和编译安装相关的,因为官方目前并没有提供 binary,有同学可能没有 GNU/Linux 环境下编译代码的经验,导致不能直接使用。针对这个问题,本文提供一个非官方 (unofficial) 的编译指导,希望对大家有所帮助
编译需要准备的环境 CentOS 6.5+(阿里云服务器)
编译需要 gcc >= 4.7, cmake >= 2.8
1.安装yum源【此步骤可以省略,我用的阿里云的镜像】
rpm -ivh "http://vault.centos.org/6.6/updates/x86_64/Packages/scl-utils-20120927-27.el6_6.x86_64.rpm" #安装scl
rpm -ivh "https://www.softwarecollections.org/repos/rhscl/devtoolset-3/epel-6-x86_64/noarch/rhscl-devtoolset-3-epel-6-x86_64-1-2.noarch.rpm" #安装yum源
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
提示:由于是国外的网站 ,,所以速度可能有点慢 大家需要耐心等待 ,,现在我们来获取下Alisql 的源代码包*******
ps:可能其他服务器会需要执行:yum install devtoolset-3
wget -c https://github.com/alibaba/AliSQL/archive/master.zip
创建用户和所属组
[root@spade ~]# groupadd mysql
[root@spade ~]# useradd -M -s/sbin/nologin -g mysql -r mysql
解压 并且进入
[root@spade ~]# unzip AliSQL-master.zip
[root@spade ~]# cd AliSQL-master
改变并且使用devtoolset-4 里面的GCC 套装
[root@spade AliSQL-master ~]# scl enable devtoolset-4 bash
[root@spade AliSQL-master ~]# gcc -v
gcc version 5.2.1 20150902 (Red Hat 5.2.1-2) (GCC) ##现在已经达到编译安装环境所需要的要求了
编译参数 ‘’大家可以自行根据mysql 5.6 官方的编译参数,,也可以参考我的。。谢谢‘’
cmake . \
-DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_INSTALL_PREFIX="/usr/local/mysql" \
-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 \
编译安装(根据CPU来进行调整j参数)
[root@spade AliSQL-master]# make -j4 &&make install
*****等待时间可能会有点长 耐心等待。。。。
配置并且启动
[root@spade AliSQL-master]# cd /usr/local/mysql
[root@spade alisql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ##这一步是为了初始时数据库
[root@spade alisql]# cp ./support-files/my-default.cnf /etc/my.cnf
[root@spade alisql]# cp ./support-files/mysql.server /etc/init.d/mysqld
[root@spade alisql]# chmod +x /etc/init.d/mysqld
[root@spade alisql]# chowd -R mysql:mysql /usr/local/mysql ##这一步很重要 注意看清楚*****
[root@spade alisql]# echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
[root@spade alisql]# source /etc/profile
[root@spade alisql]# service mysqld start Starting MySQL.. [确定]
常见错误分析
[root@spade alisql]# service mysqld start
Starting MySQL…….The server quit without updating PID f[失败]usr/local/mysql/spade.pid).
解决原因是:
① /usr/local/mysql跟目录需要赋予mysql权限
根据日志文件显示,首先检查运行权限,再看一下/usr/local/mysql/mysql.sock,发现/usr/local/mysql目录下并没有该文件,是否是没有权限写目录?
看到/usr/local/mysql目录是root用户,所以赋予mysql操作权限。
chown -R mysql.mysql /usr/local/mysql
② 关闭防火墙
③ 关闭selinux
ps :// 很多时候都是我们没有仔细赋予权限导致的
祝愿大家玩的开心~~~~