首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

CentOS 6.2 編譯安裝 MySQL 5.5 常見錯誤:CMake 找不到 make 完整解決方案

     編輯:MySQL 資料庫相關知識

錯誤現場

全新 CentOS 6.2 (Final) 系統,執行 `cmake` 配置 MySQL 5.5.25a 時噴出大量錯誤:

CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".
CMAKE_MAKE_PROGRAM is not set.
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is: CMAKE_C_COMPILER_ENV_VAR
CMake Error: Could not find cmake module file: .../CMakeFiles/CMakeCCompiler.cmake
...
CMAKE_C_COMPILER not set, after EnableLanguage
CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!

根本原因分析

**`yum install cmake*` 僅安裝了 CMake 本身,缺少 `make` (GNU Make) 建構工具**。CMake 是建構系統**產生器**,它產生 `Makefile`,但**需要 `make` 實際執行編譯鏈接**。缺少 `make` 導致 CMake 無法偵測 C/C++ 編譯器環境,進而噴出連串「變數未設定」錯誤。

解決方案:安裝完整建構工具鏈

1. 安裝 make (關鍵缺失項)

yum install make
# 輸出確認:
# Installing : 1:make-3.81-20.el6.i686
# Installed: make.i686 1:3.81-20.el6

2. 完整建構依賴一次裝齊 (避免後續缺包)

yum groupinstall "Development Tools"
# 或精準安裝:
yum install gcc gcc-c++ autoconf automake libtool ncurses-devel libxml2-devel \
    openssl-devel bison cmake make

3. 驗證環境就緒

which cmake make gcc g++
cmake --version
make --version
gcc --version

MySQL 5.5 編譯安裝標準流程 (修正後)

# 1. 建立 mysql 用戶
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

# 2. 解壓源碼
tar zxvf mysql-5.5.25a.tar.gz
cd mysql-5.5.25a

# 3. CMake 配置 (常用生產參數)
cmake \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/data/mysql \
    -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DDEFAULT_COLLATION=utf8mb4_unicode_ci \
    -DWITH_EXTRA_CHARSETS=all \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_MEMORY_STORAGE_ENGINE=1 \
    -DWITH_READLINE=1 \
    -DENABLED_LOCAL_INFILE=1 \
    -DMYSQL_USER=mysql \
    -DMYSQL_TCP_PORT=3306 \
    -DWITH_DEBUG=0

# 4. 編譯安裝 (利用所有 CPU 核心加速)
make -j$(nproc)
make install

# 5. 後續初始化
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysql
chown -R mysql:mysql /data/mysql
chown -R root:root /usr/local/mysql

# 6. 配置啟動
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start

CMake 常見變數對照表

CMake 參數用途建議值
CMAKE_INSTALL_PREFIX安裝根目錄/usr/local/mysql
MYSQL_DATADIR資料目錄/data/mysql (獨立分區)
MYSQL_UNIX_ADDRSocket 檔路徑/data/mysql/mysql.sock
DEFAULT_CHARSET預設字元集utf8mb4 (支援 Emoji)
DEFAULT_COLLATION預設排序規則utf8mb4_unicode_ci
WITH_INNOBASE_STORAGE_ENGINE啟用 InnoDB1 (必須)
WITH_DEBUG除錯版本0 (生產環境)
WITH_SSLSSL 支援system / bundled
WITH_ZLIB壓縮支援system / bundled

其他常見編譯錯誤快速對照

錯誤關鍵字缺失套件解決命令
curses.h / ncursesncurses-develyum install ncurses-devel
openssl/ssl.hopenssl-develyum install openssl-devel
libxml2libxml2-develyum install libxml2-devel
bison: command not foundbisonyum install bison
CMAKE_C_COMPILER not foundgccyum install gcc gcc-c++
CMAKE_MAKE_PROGRAM not foundmakeyum install make

核心教訓總結

  1. CMake ≠ Make:CMake 產生建構腳本,Make 執行建構。**兩者缺一不可**。
  2. 群組安裝最省心:`yum groupinstall "Development Tools"` 一次解決 gcc、make、autoconf、libtool 等所有建構基礎工具。
  3. 讀錯誤訊息找關鍵字:`CMAKE_MAKE_PROGRAM is not set` 直接指向 `make` 缺失,無需猜測。
  4. 乾淨環境重來最快:`make clean` 或刪除建構目錄重新 `cmake`,避免殘留快取干擾。

補上 `make` 並安裝完整開發工具鏈後,MySQL 5.5 即可順利通過 CMake 配置、編譯安裝。此問題在 CentOS 6/7、RHEL 6/7 全新最小安裝環境中極高發,建議將 `make` 列入標準環境初始化清單。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved