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

Linux 系統編譯安裝 MySQL 5.6 全流程詳解:從依賴到生產配置

     編輯:MySQL 綜合教學

Linux 系統編譯安裝 MySQL 5.6 全流程詳解:從依賴到生產配置

MySQL 5.6 引入 CMake、GTID、InnoDB Memcached Plugin 等新特性。本文記錄 CentOS/Ubuntu 雙平台編譯安裝全流程,含 CMake 參數釋義、gmock 下載失敗處理、my.cnf 生產級配置模板、啟動腳本註冊與核心參數調優原理。

一、系統依賴安裝

CentOS

yum -y install wget gcc-c++ cmake make bison ncurses-devel perl unzip

Ubuntu

sudo apt-get install -y g++ gcc make libpcre3 zlib1g libbz2-dev automake cmake perl libncurses5-dev bison

二、用戶與目錄準備

groupadd mysql
useradd -r -g mysql mysql
mkdir -p /data/logs/mysql /data/mysql

三、源碼獲取與 CMake 配置

wget https://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.12.tar.gz
tar zxvf mysql-5.6.12.tar.gz
cd mysql-5.6.12

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/server/mysql-5.6.12 \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_USER=mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLE_DOWNLOADS=1

關鍵參數釋義

參數含義
CMAKE_INSTALL_PREFIX安裝根目錄
MYSQL_DATADIR數據文件目錄
MYSQL_UNIX_ADDRUnix Socket 路徑
MYSQL_USER運行用戶
DEFAULT_CHARSET預設字符集(預設 latin1)
DEFAULT_COLLATION預設校對規則
WITH_INNOBASE_STORAGE_ENGINE啟用 InnoDB
ENABLE_DOWNLOADS自動下載 gmock 等測試組件

gmock 下載失敗解決

cd source_downloads
unzip gmock-1.6.0.zip
cd ..
# 重新執行 cmake
# 或關閉下載:-DENABLE_DOWNLOADS=0

四、編譯安裝與軟連結

make && make install
ln -s /usr/local/server/mysql-5.6.12 /usr/local/server/mysql

五、權限與初始化

chown -R mysql:mysql /usr/local/server/mysql*
chown -R mysql:mysql /data/mysql /data/logs/mysql

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

六、配置啟動腳本與 my.cnf

cp /usr/local/server/mysql/support-files/mysql.server /etc/init.d/mysql

生產級 my.cnf 模板

[mysqld]
datadir = /data/mysql
socket = /tmp/mysql.sock
pid-file = /data/logs/mysql/mysql.pid
user = mysql
port = 3306
default_storage_engine = InnoDB

# InnoDB 核心參數(按實際記憶體調整)
innodb_buffer_pool_size = 2G
innodb_log_file_size = 128M
innodb_file_per_table = 1
innodb_flush_method = O_DIRECT

# 字符集
character-set-server = utf8
collation-server = utf8_general_ci

# 網路優化
skip-name-resolve
skip-host-cache

# 日誌
log_error = /data/logs/mysql/mysql-error.log
long_query_time = 1
slow_query_log = 1
slow_query_log_file = /data/logs/mysql/mysql-slow.log

# 其他
explicit_defaults_for_timestamp = true
max_connections = 500
open_files_limit = 65535
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

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

七、啟動與安全加固

。設定為索引總量與 OS Cache 可用量的較小值。

5. skip-name-resolve / skip-host-cache

禁用 DNS 反查,消除連接建立時的網路延遲,防止 DNS 故障導致資料庫不可用。

6. open_files_limit = 65535

防止「Too many open files」錯誤。現代 OS 文件句柄開銷極小,建議設大不設小。

九、配置哲學總結

  • 「大多數預設值已是最佳」—— 只調核心參數,避免過度優化帶來不穩定
  • 「隨業務演進動態調整」—— 定期根據 QPS、慢查詢、緩存命中率微調
  • 「Schema 與索引優化收益遠大於參數調優」—— 80% 效能問題源於錯誤索引或 SQL 寫法

編譯安裝賦予最大靈活性,也要求更深的內核理解。掌握核心參數背後的機制原理,勝過死記硬背數百個配置項。

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