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

CentOS 6.7 編譯安裝 MySQL 5.6 完整實戰筆記(含 cmake 參數詳解)

     編輯:MySQL 綜合教學

環境與版本宣告

  • OS:CentOS 6.7 (Final)
  • MySQL:5.6.27 (GA)
  • 安裝方式:源碼編譯(cmake + make),非 RPM/yum
  • 目標:生產環境可用、utf8mb4 就緒、資料目錄與配置分離

一、安裝前置依賴包

yum -y install gcc gcc-c++ autoconf automake zlib libxml2 ncurses-devel \
  libgcrypt libtool cmake openssl openssl-devel bison bison-devel unzip wget

二、下載源碼包並建立運行用戶

cd /usr/local/src
wget https://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.27.tar.gz

groupadd mysql
useradd -g mysql -s /sbin/nologin -M mysql  # 無登入殼、不建家目錄

三、解壓與 cmake 配置(核心步驟)

tar zxvf mysql-5.6.27.tar.gz
cd mysql-5.6.27

cmake \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_DATADIR=/data/mysql \
  -DSYSCONFDIR=/etc \
  -DWITH_MYISAM_STORAGE_ENGINE=1 \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_MEMORY_STORAGE_ENGINE=1 \
  -DWITH_READLINE=1 \
  -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
  -DMYSQL_TCP_PORT=3306 \
  -DENABLED_LOCAL_INFILE=1 \
  -DWITH_PARTITION_STORAGE_ENGINE=1 \
  -DEXTRA_CHARSETS=all \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci

關鍵參數速查

參數作用建議值/說明
CMAKE_INSTALL_PREFIX安裝根目錄/usr/local/mysql
MYSQL_DATADIR資料文件目錄/data/mysql(獨立磁碟/分區最佳)
SYSCONFDIRmy.cnf 搜尋目錄/etc
DEFAULT_CHARSET預設字符集utf8(生產建議 utf8mb4,需 5.5.3+)
DEFAULT_COLLATION預設校對規則utf8_general_ci
WITH_INNOBASE_STORAGE_ENGINE啟用 InnoDB1(必開)
ENABLED_LOCAL_INFILE允許 LOAD DATA LOCAL1(導入大量資料常用)

四、編譯安裝(去喝杯咖啡)

make && make install

編譯時間視 CPU 核心數而定,建議 make -j$(nproc) 並行加速。

五、配置文件、啟動腳本、權限、開機自啟

/usr/local/mysql/scripts/mysql_install_db \
  --basedir=/usr/local/mysql \
  --user=mysql \
  --datadir=/data/mysql

輸出 Success! 即代表系統表建立完成。

七、啟動服務與安全初始化

/etc/init.d/mysqld start
mysql_secure_installation

mysql_secure_installation 互動式完成:設定 root 密碼、移除匿名用戶、禁止 root 遠程登入、刪除 test 庫、重載權限表。

八、驗證安裝

mysql -uroot -p -e "SELECT VERSION(); SHOW VARIABLES LIKE 'char%';"
# 應顯示 5.6.27 且字符集均為 utf8

九、常見坑點與避雷指南

  • cmake 重跑:rm -rf CMakeCache.txt 再執行 cmake,否則舊快取導致參數不生效。
  • libaio 缺失:yum install libaio-devel,否則 InnoDB 啟動報錯。
  • SELinux:setenforce 0 或配置正確上下文,否則 /data/mysql 讀寫被阻擋。
  • 防火牆:iptables -A INPUT -p tcp --dport 3306 -j ACCEPT。
  • my.cnf 優化:生產環境必調 innodb_buffer_pool_size(實體記憶體 60-70%)、innodb_log_file_size、max_connections 等。

結語

源碼編譯雖繁瑣,卻能精準控制每個編譯選項、目錄佈局與引擎組合,是掌握 MySQL 內核運行機制的最佳途徑。將本流程封裝為 Ansible/Shell 腳本,即可實現「一鍵交付」標準化環境。

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