線上 MySQL 通常採用源碼編譯安裝,以便根據業務需求裁剪功能模組。但面對數百台伺服器時,手動編譯、配置顯然不現實。本文詳細記錄 MySQL 自動化安裝部署的完整流程,涵蓋 RPM 打包、配置模板、數據目錄模板與部署腳本四大核心環節。
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
在 rpm 目錄下建立 mysql.spec,關鍵段落如下:
utf8、排序規則 utf8_general_ci。make DESTDIR=$RPM_BUILD_ROOT install。/opt/mysql 及權限歸屬。完整 spec 內容請參考原文,核心 CMake 參數已針對生產環境優化。
rpmbuild -bb ./mysql.spec
模板涵蓋 InnoDB 核心參數(緩衝池、日誌、併發控制)、複制設定、Binlog 配置、連接數限制等。關鍵點:
transaction-isolation=READ-COMMITTED 搭配 binlog_format=ROW 避免 ERROR 1665。server_id 預留空白,由部署腳本動態生成(時間戳),確保集群內唯一。port、datadir、內存相關設定,按需擴展。在一台已初始化的 MySQL 實例上,打包 data、log、tmp 目錄為 data.tar,新節點解壓即可獲得預建的系統表、權限帳號等通用數據。
#!/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 叢集的標準化、可重複、低誤差佈署,大幅提升運維效率。