1.下载源码
下载带boost库的源码解压(-DDOWNLOAD_BOOST=1 为直接下载boost库),安装下面系统依赖。(Percona Software downloads for databases)
2.安装依赖
yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel readline-devel
yum install -y mysql-devel python-devel perl-JSON
python -m pip install mysql-python
3.开始编译
根据自己需要选择编译debug或release版本(DCMAKE_BUILD_TYPE参数控制):debug版本支持online debug适合内核功能调试、开发;release版本适合线上使用,二进制包相对比较小
mkdir release && cd release
cmake ../ \
-DCMAKE_BUILD_TYPE=release \
-DENABLED_PROFILING=1 \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_ZLIB=bundled \
-DWITH_TOKUDB=0 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=../boost \
-DWITH_SSL=system \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_INNODB_MEMCACHED=0 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=0 \
-DINSTALL_LAYOUT=STANDALONE \
-DCOMMUNITY_BUILD=1 \
-DMYSQL_SERVER_SUFFIX=test_demo
#指定并发线程数开始编译,并发数建议设置为机器CPU核数
make -j 16
#编译完成后,生成安装包
make package
4.编译常见问题
1.编译过程可能出错,需要把中间文件清理干净,可以直接删除debug或release目录,如果没有单独目录,需要把 和 CMakeFiles 删除,然后再编译。
2.建议下载源码到本地后,选建个本地git仓库,可以方便的看到自己的每个改动,以及编译过程中产生的中间文件。
3.如果没有建立git仓库,可以用比较工具对比目录,用自己修改过的目录和没修改过的目录对比看差异。