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

MySQL 服務維護與應用設計筆記:架構規劃、啟動腳本與多實例隔離精華版

     編輯:MySQL 資料庫相關知識

前言

本文為維護筆記精華整合版,聚焦架構規劃、安裝參數、多實例啟動停止腳本、rc.local 部署、硬體故障快速恢復五大核心主題。

一、MySQL 伺服器規劃:程式與資料物理隔離

硬碟1 (系統/程式)          硬碟2 (資料/應用)
/
├── /usr                    <-- 作業系統
├── /home/mysql             <-- MySQL 應用程式 (指向最新版本符號連結)
/
└── /data/app_1/            <-- 應用1 資料與腳本
    ├── /data/app_2/        <-- 應用2
    └── /data/app_3/        <-- 應用3

核心原則:**程式碼與資料分離**,利於升級、備份、遷移、災難恢復。

二、安裝與編譯建議

  • 採用 **STABLE 穩定版**。
  • 不使用 --with-charset:僅影響排序,增加遷移麻煩。
  • 不使用 InnoDB(早期版本):除非需交易/外鍵,MyISAM 效能優勢巨大。
./configure --prefix=/home/mysql
make
make install

三、多實例服務啟動腳本

1. 準備資料目錄

cp -r mysql/var/mysql /data/app_1/

2. start_mysql.sh

#!/bin/sh
rundir=`dirname "$0"`
echo "$rundir"
/home/mysql/bin/safe_mysqld \
  --user=mysql \
  --pid-file="$rundir"/mysql.pid \
  --datadir="$rundir"/var \
  "$@" \
  -O max_connections=500 \
  -O wait_timeout=600 \
  -O key_buffer=32M \
  --port=3402 \
  --socket="$rundir"/mysql.sock &

3. rc.local 註冊(絕對路徑)

/data/app_1/start_mysql.sh
/data/app_2/start_mysql.sh
/data/app_3/start_mysql.sh

4. stop_mysql.sh

#!/bin/sh
rundir=`dirname "$0"`
echo "$rundir"
/home/mysql/bin/mysqladmin -u mysql -S"$rundir"/mysql.sock shutdown

四、腳本化管理優勢總結

  1. 多實例隔離: 修改 --port 即可啟動新實例,各實例資料/腳本獨立打包。
  2. 避免 /tmp 衝突: Socket/PID 集中在應用目錄,不被系統清理誤刪。
  3. 硬體故障秒級恢復: 硬碟1 掛掉 → 硬碟2 掛載新機 → 加入啟動腳本 → 服務恢復(無需動 my.cnf)。

五、啟動後目錄結構

/data/app_1/
├── start_mysql.sh
├── stop_mysql.sh
├── mysql.pid
├── mysql.sock
└── var/
    ├── mysql/
    ├── app_1_db_1/
    └── app_1_db_2/

小結

「分離、腳本化、隔離、可攜」是穩健 MySQL 運維的四字真言。此架構經生產環境驗證,支撐高併發、易擴展、快恢復。

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