【MySQL内核系列】Centos7环境MySQL5.7源码编译教程

时间:2025-02-25 17:31:23

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仓库,可以用比较工具对比目录,用自己修改过的目录和没修改过的目录对比看差异。