建议:内存6G以上,否则可能会编译出错,cpu核数越多越好
说明:本操作过程使用于以下版本
mysql-5.6.51.tar.gz
mariadb-10.2.18.tar.gz
CentOS 7
1、安装相关依赖包
yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel
libarchive-devel boost-devel ncurses-devel gnutls-devel libxml2-devel
openssl-devel libevent-devel libaio-devel perl-Data-Dumper
2、准备数据库目录
mkdir /data/mysql
chown mysql.mysql /data/mysql
3、源码编译安装
编译安装说明
利用cmake编译,而利用传统方法,cmake的重要特性之一是其独立于源码(out-of-source)的编译功能, 即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的 影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译 编译选项:
编译选项
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
4、下载并解压缩源码包
tar xvf mysql-5.6.51.tar.gz -C /usr/local/src
#mariadb-10.2.18.tar.gz
5、源码编译安装mysql
cd mysql-5.6.51/
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make -j 8 && make install
提示:如果出错,执行rm -f CMakeCache.txt
6、准备环境变量
echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
7、生成数据库文件
cd /apps/mysql/
scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql
8、准备配置文件
cp -b /apps/mysql/support-files/my-default.cnf /etc/my.cnf
#针对旧版本或mariadb-10.2.18.tar.gz
cp /apps/mysql/support-files/my-huge.cnf /etc/my.cnf
9、准备启动脚本,并启服务
cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start
10、安全初始化
mysql_secure_installation