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

CentOS 5.5 源碼編譯安裝 MySQL 5.5.37 全過程:CMake、ncurses、啟動腳本、服務註冊

     編輯:MySQL 綜合教學

CentOS 5.5 源碼編譯安裝 MySQL 5.5.37 全過程:CMake、ncurses、啟動腳本、服務註冊

MySQL 5.5+ 放棄 autotools 改用 CMake 構建,依賴 ncurses 庫。本文記錄從源碼下載、依賴安裝、CMake 配置、編譯安裝、用戶創建、數據字典初始化、服務註冊的完整可復現步驟。

環境準備

# 安裝編譯工具鏈
yum -y install gcc gcc-c++ make bison perl

# 1. 安裝 CMake 2.8.12.2
wget https://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
tar xzf cmake-2.8.12.2.tar.gz
cd cmake-2.8.12.2
./bootstrap && make && make install

# 2. 安裝 ncurses-devel(CMake 會檢查)
wget https://invisible-island.net/datafiles/release/ncurses.tar.gz
tar xzf ncurses.tar.gz
cd ncurses-5.9
./configure && make && make install

MySQL 5.5.37 編譯安裝

wget https://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.37.tar.gz
tar xzf mysql-5.5.37.tar.gz
cd mysql-5.5.37

# 關鍵:刪除舊 CMakeCache.txt 避免配置殘留
rm -f CMakeCache.txt

# CMake 配置(常用生產參數)
cmake . \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_DATADIR=/usr/local/mysql/data \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_MYISAM_STORAGE_ENGINE=1 \
  -DWITH_MEMORY_STORAGE_ENGINE=1 \
  -DSYSCONFDIR=/etc \
  -DWITH_SSL=yes \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci \
  -DWITH_READLINE=on

make -j$(nproc) && make install

後續配置與啟動

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

# 2. 目錄授權
chown -R mysql:mysql /usr/local/mysql

# 3. 初始化數據字典(5.5 使用 mysql_install_db)
/usr/local/mysql/scripts/mysql_install_db \
  --user=mysql \
  --basedir=/usr/local/mysql \
  --datadir=/usr/local/mysql/data

# 4. 啟動測試
/usr/local/mysql/bin/mysqld_safe --user=mysql &

# 5. 註冊系統服務
cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on

# 6. 啟動服務
service mysql start

# 7. 驗證
/usr/local/mysql/bin/mysql -u root -p
# 密碼為空直接回車
mysql> SHOW DATABASES;

常見報錯與解決

報錯原因解決
Curses library not found缺 ncurses-devel源碼安裝 ncurses 或 yum install ncurses-devel
Could not find ./bin/my_print_defaults未執行 make install 或 basedir 錯誤重新 make install,啟動指定 --basedir
mysqld_safe 找不到數據目錄datadir 未初始化或路徑錯執行 mysql_install_db 指定正確 basedir/datadir

生產環境建議調整

  • my.cnf:innodb_buffer_pool_size=物理內存 60-70%、innodb_log_file_size=256M、max_connections=2000、skip-name-resolve。
  • 數據目錄掛載獨立磁盤/分區(RAID10/SSD),innodb_file_per_table=ON。
  • 啟用慢查詢日志、Binlog(ROW 格式)、錯誤日志輪轉。
  • 定期 mysqlcheck --optimize、mysqldump 備份驗證。

源碼編譯雖繁瑣,但能精準控制版本、編譯參數、安裝路徑,是內核級優化與合規審計的前提。腳本化固化流程,實現基礎設施即代碼。

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