-DWITH_DEBUG=1)便於核心開發與問題定位。-DBUILD_CONFIG=mysql_release)。tar zxvf mysql-5.6.17.tar.gz
mkdir build_mysql && cd build_mysql
cmake ../mysql-5.6.17 [OPTIONS...]
make -j$(nproc)
make install
優勢: 源碼目錄保持乾淨,支持同一源碼多配置並行構建(如 Debug/Release 不同目錄)。
| 參數 | 說明 | 默認/建議 |
|---|---|---|
-DCMAKE_INSTALL_PREFIX | 安裝根目錄 | /usr/local/mysql 或 /opt/mysql |
-DINSTALL_LAYOUT | 預設佈局 | STANDALONE (tar.gz 風格) / RPM / DEB / SVR4 |
-DMYSQL_DATADIR | 數據目錄 | /data/mysql(生產建議獨立分區) |
-DSYSCONFDIR | my.cnf 搜索目錄 | /etc(不可運行時修改) |
-DMYSQL_TCP_PORT | TCP 端口 | 3306 |
-DMYSQL_UNIX_ADDR | Socket 文件 | /tmp/mysql.sock 或 /var/run/mysqld/mysqld.sock |
# 預設靜態編譯:MyISAM, MERGE, MEMORY, CSV
# 靜態編譯 InnoDB(推薦,性能最優)
-DWITH_INNOBASE_STORAGE_ENGINE=1
# 靜態編譯其他引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
# 排除不需要的引擎(減小體積)
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
# 關鍵:InnoDB Memcached 插件(5.6+)
-DWITH_INNODB_MEMCACHED=1
原則: 生產環境核心引擎(InnoDB)靜態編譯,邊緣引擎按需動態或排除。
-DDEFAULT_CHARSET=utf8mb4
-DDEFAULT_COLLATION=utf8mb4_general_ci
-DWITH_EXTRA_CHARSETS=all # 或 complex/none
| 參數 | 建議值 | 影響 |
|---|---|---|
-DENABLED_LOCAL_INFILE | OFF | 關閉 LOAD DATA LOCAL INFILE,減少安全風險 |
-DENABLED_PROFILING | ON | 啟用 SHOW PROFILE,性能分析必備 |
-DWITH_DEBUG | OFF (生產) / ON (測試) | 調試符號,影響 10-15% 性能 |
-DWITH_SSL | system | 使用系統 OpenSSL,支持 TLS 連接 |
-DWITH_ZLIB | system | 使用系統 zlib,COMPRESS()/壓縮協議 |
-DIGNORE_AIO_CHECK | ON (無 libaio 環境) | 跳過 Linux AIO 依賴檢查 |
-DCMAKE_BUILD_TYPE=RelWithDebInfo # 默認:優化 + 調試信息
-DCMAKE_BUILD_TYPE=Release # 純優化,無調試符號
-DBUILD_CONFIG=mysql_release # 官方發布配置集合
cmake ../mysql-5.6.17 \
-DCMAKE_INSTALL_PREFIX=/opt/mysql/5.6.17 \
-DINSTALL_LAYOUT=STANDALONE \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_INNODB_MEMCACHED=1 \
-DENABLED_LOCAL_INFILE=OFF \
-DENABLED_PROFILING=ON \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DCMAKE_BUILD_TYPE=RelWithDebInfo
groupadd -r mysql
useradd -r -g mysql -s /sbin/nologin mysql
cd /opt/mysql/5.6.17
chown -R mysql:mysql .
scripts/mysql_install_db --user=mysql --datadir=/data/mysql
chown -R root .
chown -R mysql:mysql /data/mysql
# 啟動測試
bin/mysqld_safe --user=mysql &
# 設置 root 密碼
bin/mysqladmin -u root password 'StrongPassw0rd!'
# 註冊服務
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
yum install ncurses-devel readline-devel 或 -DWITH_READLINE=bundled。-DINNODB_PAGE_ATOMIC_REF_COUNT=OFF。make clean 後仍報錯 → 刪除 CMakeCache.txt 重新配置。