問題現場
[root@vps870 mysql-5.5.28]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
> -DDEFAULT_CHARSET=gbk \
> -DDEFAULT_COLLATION=gbk_chinese_ci \
> -DWITH_EXTRA_CHARSETS:STRING=gbk,gb2312,utf8 \
> -DWITH_MYISAM_STORAGE_ENGINE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_READLINE=1 \
> -DENABLED_LOCAL_INFILE=1 \
> -DMYSQL_DATADIR=/var/mysql/data
-bash: /usr/bin/cmake: No such file or directory
根因分析
- 系統默認在
/usr/bin 尋找 cmake
- 源碼編譯安裝的
cmake 默認安裝至 /usr/local/bin
- 環境變量
PATH 未包含 /usr/local/bin,或優先級較低
解決方案
方案一:創建軟鏈接(推薦,一勞永逸)
ln -s /usr/local/bin/cmake /usr/bin/cmake
# 驗證
cmake --version
方案二:使用絕對路徑調用
/usr/local/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ...
方案三:臨時添加 PATH(當前會話生效)
export PATH=/usr/local/bin:$PATH
cmake ...
方案四:永久配置 PATH(推薦生產環境)
echo 'export PATH=/usr/local/bin:$PATH' >> /etc/profile
source /etc/profile
驗證安裝
cmake --version
# 輸出示例:cmake version 3.17.3
擴展:MySQL 編譯安裝完整流程提示
- 安裝依賴:
yum install -y gcc gcc-c++ ncurses-devel bison openssl-devel
- 創建 mysql 用戶:
groupadd mysql && useradd -r -g mysql -s /sbin/nologin mysql
- 下載源碼:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44.tar.gz
- 解壓進入目錄
- 執行 cmake(參考上方參數,5.7+ 參數有變化)
make && make install
- 初始化數據目錄:
mysqld --initialize --user=mysql --datadir=/var/lib/mysql
- 配置
my.cnf、systemd 服務、防火牆、啟動驗證
避坑指南
- 生產環境優先使用發行版包管理器:
yum install mysql-community-server 或 dnf install @mysql
- 源碼編譯耗時極長(數十分鐘),需預留足夠編譯時間
- 參數
-DDEFAULT_CHARSET=gbk 5.7+ 已棄用,建議統一使用 utf8mb4
- 編譯前務必確認
cmake、gcc、bison 版本滿足 MySQL 版本要求