首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

CentOS 5.5 編譯安裝 MySQL 5.5.9 實戰:CMake 替代 Configure、獨立數據目錄、啟動腳本註冊全流程

     編輯:MySQL 綜合教學

MySQL 5.5 起構建系統從 Autotools (configure) 遷移至 CMake,本文記錄在 CentOS 5.5 上編譯安裝 MySQL 5.5.9 單實例的完整步驟,含 CMake 安裝、關鍵編譯參數、獨立數據目錄規劃、配置文件與啟動腳本部署、常見編譯報錯修復。

一、環境準備

# 1. 創建運行用戶
useradd -g mysql -s /sbin/nologin -d /usr/local/mysql3307 mysql3307

# 2. 獨立數據目錄(掛載獨立磁盤/分區最佳)
mkdir -p /mysqldata/dirdata/mysql3307
chown -R mysql3307:mysql3307 /mysqldata/dirdata/mysql3307

二、安裝 CMake 2.8.4(MySQL 5.5 要求 ≥ 2.6)

cd /opt
wget https://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
tar zxvf cmake-2.8.4.tar.gz
cd cmake-2.8.4
./configure && make install
# 驗證
cmake --version   # 2.8.4

三、CMake 編譯安裝 MySQL 5.5.9

cd /opt
tar zxvf mysql-5.5.9.tar.gz
cd mysql-5.5.9

cmake . \
  -DCMAKE_INSTALL_PREFIX=/mysqldata/mysql3307 \
  -DMYSQL_DATADIR=/mysqldata/dirdata/mysql3307 \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DENABLED_LOCAL_INFILE=1 \
  -DMYSQL_TCP_PORT=3307 \
  -DEXTRA_CHARSETS=all \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci \
  -DMYSQL_UNIX_ADDR=/mysqldata/dirdata/mysql3307/mysql.sock \
  -DMYSQL_USER=mysql3307 \
  -DWITH_DEBUG=0

make -j$(nproc)
make install

關鍵參數說明:

  • CMAKE_INSTALL_PREFIX:程式碼安裝根目錄(二進制、庫、include)。
  • MYSQL_DATADIR:數據文件目錄(.ibd、.frm、redo/undo log)。
  • MYSQL_TCP_PORT:服務監聽端口。
  • MYSQL_UNIX_ADDR:Unix Socket 文件路徑。
  • DEFAULT_CHARSET/COLLATION:預設字符集/校對集,避免 latin1 亂碼。

四、部署配置文件與啟動腳本

# 1. 複製配置模板
cp support-files/my-medium.cnf /etc/my.cnf
# 編輯 /etc/my.cnf 確認 [mysqld] 區段包含上述 port、socket、datadir、basedir

# 2. 複製並授權啟動腳本
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld

# 3. 註冊服務
chkconfig --add mysqld
chkconfig mysqld on

五、初始化數據庫並啟動

# 進入安裝目錄執行初始化腳本
cd /mysqldata/mysql3307
./scripts/mysql_install_db --user=mysql3307 --ldata=/mysqldata/dirdata/mysql3307

# 啟動
/etc/init.d/mysqld start

# 驗證
netstat -ntlp | grep 3307
/mysqldata/mysql3307/bin/mysql -uroot -p -S /mysqldata/dirdata/mysql3307/mysql.sock -e "SHOW VARIABLES LIKE 'version';"

六、常見編譯報錯匯總與修復

七、升級到 MySQL 5.6/5.7/8.0 的關鍵差異提示

  • Boost 依賴:5.7+ 需 -DWITH_BOOST= 指定 Boost 源碼路徑。
  • CMake 版本:8.0 要求 CMake ≥ 3.5。
  • 默認認證插件:8.0 默認 caching_sha2_password,老驅動需顯式指定 mysql_native_password。
  • 數據字典:8.0 移除 .frm,改用內部數據字典表,mysql_install_db 併入 mysqld --initialize。

掌握 CMake 參數矩陣,即可在任何 Linux 發行版上定制編譯出符合業務需求的 MySQL 二進制包。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
報錯現象原因修復
CMake Warning: variable 'MYSQL_USER' not usedCMake 變量名大小寫敏感,實際變量為 MYSQL_USER 但腳本內部用 INSTALL_LAYOUT 控制移除 -DMYSQL_USER=... 參數,改用 -DINSTALL_LAYOUT=STANDALONE 或接受默認
curses.h not found缺少 ncurses-develyum install ncurses-devel -y
bison not found缺少 bisonyum install bison -y
g++ not found缺少 gcc-c++yum install gcc-c++ -y