首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 自動化安裝部署實戰:從 RPM 打包到批量佈署

     編輯:MySQL 資料庫相關知識

線上 MySQL 通常採用源碼編譯安裝,以便根據業務需求裁剪功能模組。但面對數百台伺服器時,手動編譯、配置顯然不現實。本文詳細記錄 MySQL 自動化安裝部署的完整流程,涵蓋 RPM 打包、配置模板、數據目錄模板與部署腳本四大核心環節。

一、製作企業定製 RPM 包

1. 獲取源碼

wget https://downloads.mysql.com/archives/get/file/mysql-5.6.16.tar.gz
tar -zxvf mysql-5.6.16.tar.gz
cd mysql-5.6.16
mkdir rpm && cd rpm

2. 編寫 mysql.spec 文件

在 rpm 目錄下建立 mysql.spec,關鍵段落如下:

  • %build:定義 CMake 參數與編譯優化選項,啟用 InnoDB、Partition、Archive、Blackhole、Performance Schema 等引擎,預設字符集 utf8、排序規則 utf8_general_ci。
  • %install:執行 make DESTDIR=$RPM_BUILD_ROOT install。
  • %files:指定安裝路徑 /opt/mysql 及權限歸屬。

完整 spec 內容請參考原文,核心 CMake 參數已針對生產環境優化。

3. 生成 RPM

rpmbuild -bb ./mysql.spec

二、編寫 my.cnf 模板

模板涵蓋 InnoDB 核心參數(緩衝池、日誌、併發控制)、複制設定、Binlog 配置、連接數限制等。關鍵點:

  • transaction-isolation=READ-COMMITTED 搭配 binlog_format=ROW 避免 ERROR 1665。
  • server_id 預留空白,由部署腳本動態生成(時間戳),確保集群內唯一。
  • 其他可動態化參數:port、datadir、內存相關設定,按需擴展。

三、準備數據目錄模板

在一台已初始化的 MySQL 實例上,打包 data、log、tmp 目錄為 data.tar,新節點解壓即可獲得預建的系統表、權限帳號等通用數據。

四、自動化部署腳本 (mysql_install.sh)

#!/bin/sh
# 1. 環境準備
yum install -y cmake gcc g++ bison ncurses-devel zlib
groupadd mysql; useradd -g mysql mysql -s /bin/nologin

# 2. 從內部 FTP 拉取製品
ftp -n <> my.cnf
rpm -ivh mysql-5.6.16-guahao.x86_64.rpm
cp my.cnf /opt/mysql
chown -R mysql:mysql /opt/mysql

tar xvf data.tar -C /data
chown -R mysql:mysql /data/mysql

# 4. 註冊服務並啟動
cp /opt/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig mysqld on
/etc/init.d/mysqld start

總結

通過「定製 RPM + 模板化配置 + 數據目錄預熱 + 腳本化部署」四步走,實現百台級 MySQL 叢集的標準化、可重複、低誤差佈署,大幅提升運維效率。

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