# cmake 3.6+ tar zxvf cmake-3.6.0.tar.gz && cd cmake-3.6.0 && ./bootstrap && make && make install # bison 3.0.4+ tar zxvf bison-3.0.4.tar.gz && cd bison-3.0.4 && ./configure && make && make install # ncurses-devel(解決 Curses library not found) yum -y install ncurses-devel
tar -zxvf mysql-5.7.13.tar.gz && cd mysql-5.7.13 # 關鍵:5.7 強制依賴 Boost,兩種方式二選一 # 方式 A:自動下載 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DDEFAULT_CHARSET=gbk -DDEFAULT_COLLATION=gbk_chinese_ci \ -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 \ -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost # 方式 B:預置 Boost 包於 /usr/local/boost,去掉 DOWNLOAD_BOOST make && make install
| 報錯 | 原因 | 修復 |
|---|---|---|
| COULD_NOT_FIND_BOOST | 缺少 Boost | 加 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/path 或預置 Boost |
| Curses library not found | 缺 ncurses-devel | yum -y install ncurses-devel 後刪 CMakeCache.txt 重跑 cmake |
# 建用戶組/用戶 groupadd mysql && useradd -r -g mysql -s /bin/false mysql # 初始化數據目錄 /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb # 拷貝啟動腳本、配置文件、設置權限、啟動服務...
源碼編譯 MySQL 5.7 核心難點在 CMake 參數 與 Boost 依賴。掌握 -DDOWNLOAD_BOOST=1 自動下載或預置 Boost、ncurses-devel 解決 curses 缺失、刪 CMakeCache.txt 重跑 cmake,即可順利編譯安裝。