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

CentOS 6.5 上 MySQL 5.6 源碼編譯安裝完整教學

     編輯:MySQL 綜合教學

CentOS 6.5 上 MySQL 5.6 源碼編譯安裝完整教學

本文記錄在 CentOS 6.5 環境下,從源碼 tarball 編譯安裝 MySQL 5.6.24 的完整流程,包含依賴套件、cmake 參數解析、配置檔範本、服務註冊與啟動驗證,適合需自訂編譯參數或離線安裝的生產環境部署。

一、環境與軟體包

  • 作業系統:CentOS 6.5 (x86_64)
  • 源碼包:mysql-5.6.24.tar.gz
  • 目標安裝路徑:/usr/local/mysql
  • 資料目錄:/var/lib/mysql
  • 配置檔:/etc/my.cnf
  • 執行使用者:mysql (nologin)

二、安裝編譯依賴與工具

yum install -y cmake ncurses-devel bison gcc-c++ gcc

三、建立 mysql 系統使用者

useradd -s /sbin/nologin -M mysql

四、解壓並進入源碼目錄

tar -zxvf mysql-5.6.24.tar.gz
cd mysql-5.6.24

五、cmake 編譯配置(關鍵參數詳解)

cmake . \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_DATADIR=/var/lib/mysql \
  -DSYSCONFDIR=/etc \
  -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  -DWITH_FEDERATED_STORAGE_ENGINE=1 \
  -DWITH_PARTITION_STORAGE_ENGINE=1 \
  -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
  -DENABLED_LOCAL_INFILE=1 \
  -DEXTRA_CHARSETS=all \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci \
  -DWITH_EMBEDDED_SERVER=1 \
  -DWITH_SSL=system \
  -DMYSQL_USER=mysql
參數用途
CMAKE_INSTALL_PREFIXMySQL 主程式安裝根目錄
MYSQL_DATADIR資料檔案存放目錄
SYSCONFDIRmy.cnf 讀取目錄
MYSQL_UNIX_ADDRSocket 檔案路徑
ENABLED_LOCAL_INFILE允許 LOAD DATA LOCAL INFILE
EXTRA_CHARSETS=all編譯支援所有字元集
DEFAULT_CHARSET預設字元集 utf8
WITH_PARTITION_STORAGE_ENGINE啟用分區表支援
WITH_SSL=system使用系統 OpenSSL

六、編譯安裝

make -j$(nproc)
make install

提示:-j$(nproc) 可並行編譯加速,視 CPU 核心數調整。

七、部署啟動腳本與預設配置

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
mkdir -p /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql

八、修改 /etc/my.cnf 關鍵參數(生產環境範本)

[client]
port = 3306
socket = /tmp/mysqld.sock

[mysql]
no-auto-rehash

[mysqld]
user = mysql
port = 3306
socket = /tmp/mysqld.sock
basedir = /usr/local/mysql
datadir = /var/lib/mysql
open_files_limit = 10240
back_log = 600
max_connections = 3000
max_connect_errors = 6000
table_open_cache = 4096
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 300
thread_concurrency = 8
query_cache_size = 64M
query_cache_limit = 4M
query_cache_min_res_unit = 2k
default-storage-engine = InnoDB
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 256M
max_heap_table_size = 256M
slow_query_log = 1
slow_query_log_file = /usr/local/mysql/slow.log
long_query_time = 2
log_bin = mysql-bin
binlog_cache_size = 4M
max_binlog_cache_size = 8M
max_binlog_size = 512M
expire_logs_days = 7
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover = FORCE,BACKUP
skip-name-resolve
lower_case_table_names = 1
innodb_buffer_pool_size = 4G
innodb_log_file_size = 512M
innodb_log_files_in_group = 2
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_flush_method = O_DIRECT

[mysqldump]
quick
max_allowed_packet = 32M

[mysqld_safe]
log-error = /usr/local/mysql/error.log
pid-file = /usr/local/mysql/mysqld.pid

註:上方 InnoDB 參數需依實體記憶體調整(innodb_buffer_pool_size 建議 60-70% 實體記憶體)。

九、設定環境變數

echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile

十、初始化資料目錄

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

十一、啟動服務並驗證

service mysql start
ps -ef | grep mysql
mysql -uroot -p -e "SELECT VERSION();"

十二、安全性初始化(建議執行)

/usr/local/mysql/bin/mysql_secure_installation

依提示設定 root 密碼、移除匿名帳號、禁止 root 遠端登入、移除 test 資料庫。

常見問題排查

  • libaio 缺失:yum install libaio-devel
  • Socket 路徑不一致:檢查 my.cnf 與啟動腳本 mysql.server 內 socket 參數一致。
  • 權限問題:確認 /var/lib/mysql、/usr/local/mysql 擁有者為 mysql:mysql。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved