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

Percona Server 5.7 源碼編譯安裝全紀錄:從 Boost 依賴到線程池驗證

     編輯:MySQL 綜合教學

環境準備

  • OS: CentOS 6.7
  • 目標版本: Percona Server 5.7.13
  • 安裝路徑: /usr/local/percona
  • 資料目錄: /percona/data
  • 日誌目錄: /percona/log

關鍵依賴:Boost 1.59.0 (版本強綁定)

Percona 5.7 編譯強制要求 Boost 1.59.0,新版不相容。官網下載:boost.org。解壓至指定目錄 (如 /usr/local/percona/boost),CMake 時透過 -DWITH_BOOST 指定。

編譯安裝步驟

1. 安裝建構工具與依賴庫

yum install -y readline-devel git gcc gcc-c++ make cmake bison bison-devel ncurses-devel libaio-devel perl

2. 建立使用者與目錄

groupadd mysql
useradd -r -g mysql mysql
mkdir -p /usr/local/percona /percona/data /percona/log
chown -R mysql:mysql /percona

3. CMake 核心配置參數

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/percona \
-DMYSQL_UNIX_ADDR=/percona/data/mysql.sock \
-DWITH_BOOST=/usr/local/percona/boost \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_EDITLINE=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/percona/data \
-DMYSQL_TCP_PORT=3306 \
-DZLIB_INCLUDE_DIR:PATH=/usr/include \
-DENABLE_DOWNLOADS=1

4. 編譯與安裝 (多核加速)

make -j 8
make install

5. 初始化資料目錄 (5.7 非安全模式)

cd /usr/local/percona
./bin/mysqld --initialize-insecure --user=mysql \
--basedir=/usr/local/percona --datadir=/percona/data \
--innodb_undo_tablespaces=3
./bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/percona --datadir=/percona/data

6. 部署啟動腳本與環境變數

cp support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig mysql on
service mysql start

# 環境變數
echo 'export PATH=/usr/local/percona/bin:$PATH' >> /etc/profile
source /etc/profile

7. 設定 Root 密碼與遠端授權 (生產環境慎用 %)

mysql -uroot
SET PASSWORD = PASSWORD('your_strong_password');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_strong_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

8. 防火牆開放 3306 埠

vim /etc/sysconfig/iptables
# 在 22 埠規則下添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables restart

核心優勢:Percona 線程池

僅在 Percona、MariaDB、Oracle Enterprise Edition 提供。社區版無此功能。

啟用方式

SET GLOBAL thread_handling = 'pool-of-threads';

適用場景

  • 高併發短查詢: 限制併發執行緒數,減少 CPU 上下文切換,顯著提升吞吐 (TPS)。
  • 不適用長查詢: 長查詢會長期佔用池中執行緒,導致新連線排隊甚至拒絕服務。

關鍵調優參數

  • thread_pool_size:執行緒組數 (預設 CPU 核心數),每組對應一核心。
  • thread_pool_oversubscribe:單組允許活躍執行緒數 (類似超執行緒)。
  • thread_pool_stall_limit:判定執行緒阻塞的時間 (ms),超時喚醒/建立新執行緒。
  • thread_pool_high_prio_mode:優先隊列模式 (transactions/statements/none),保障短事務優先提交釋放鎖。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved