# CentOS/RHEL 7/8
yum install -y gcc gcc-c++ cmake3 ncurses-devel openssl-devel bison \
libaio-devel numactl-devel rpcgen perl-Data-Dumper
# Ubuntu/Debian
apt install -y build-essential cmake libncurses5-dev libssl-dev bison \
libaio-dev numactl-dev
MySQL 5.6 要求 CMake ≥ 2.8.12,生產建議用 CMake 3.15+ 以獲得更好的編譯器特性檢測與並行構建支持。
# 若系統版本過舊,自編譯 CMake
wget https://cmake.org/files/v3.25/cmake-3.25.2.tar.gz
tar xzf cmake-3.25.2.tar.gz && cd cmake-3.25.2
./bootstrap --parallel=$(nproc) && make -j$(nproc) && make install
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.51.tar.gz
# 驗證 GPG 簽名
gpg --keyserver pgp.mit.edu --recv-keys 5072E1F5
gpg --verify mysql-5.6.51.tar.gz.asc mysql-5.6.51.tar.gz
cd mysql-5.6.51
mkdir build && cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.51 \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=0 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=0 \
-DWITH_ARCHIVE_STORAGE_ENGINE=0 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_DEBUG=0 \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -march=native -pipe -fomit-frame-pointer" \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -march=native -pipe -fomit-frame-pointer" \
-DWITH_LTO=ON \
-DMYSQL_MAINTAINER_MODE=OFF
| 參數 | 作用 |
|---|---|
| -DWITH_SSL=system | 使用系統 OpenSSL,及時獲取安全補丁 |
| -DCMAKE_BUILD_TYPE=RelWithDebInfo | 保留調試符號,便於生產排查 core dump |
| -DWITH_LTO=ON | 鏈接時優化(LTO),跨文件內聯,性能提升 3-8% |
| -march=native | 針對當前 CPU 指令集優化(AVX2、BMI2 等) |
| 精簡存儲引擎 | 僅保留 InnoDB、Partition、PerfSchema,減少 30% 體積 |