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

MySQL 服務維護筆記(上):架構規劃、安裝優化與啟動腳本實戰

     編輯:MySQL 資料庫相關知識

MySQL 服務器規劃:分離程序與數據

為了便於後期維護、升級、備份以及保障數據安全,強烈建議將 MySQL 程序文件與數據文件安裝在不同的物理硬件上。推薦的目錄結構佈局如下:

硬盤 1                          硬盤 2
├── /usr                        ├── /data/app_1/   (應用數據、啟動腳本)
├── /home/mysql                 ├── /data/app_2/
│   └── (指向最新版本的鏈接)    ├── /data/app_3/
├── /home/mysql-3.23.54/        (最新版本 MySQL)
└── /home/mysql-old/            (舊版本備份)

採用符號鏈接 /home/mysql → /home/mysql-3.23.54/ 可實現無縫版本切換與回滾。

MySQL 服務安裝與編譯優化

版本選擇原則

生產環境應優先選擇當前 STABLE(穩定版) 版本,避免使用開發版或過舊版本。

編譯配置建議

./configure --prefix=/home/mysql --without-innodb
make
make install
  • 避免使用 --with-charset:僅在按字母排序時有用,會給數據遷移帶來麻煩。
  • 避免使用 InnoDB:除非業務強依賴外鍵、事務等企業級特性。InnoDB 代價是速度比 MyISAM 有數量級下降。

服務啟動與停止腳本實戰

1. 數據目錄初始化

將預設的 mysql/var/mysql 複製到 /data/app_1/ 目錄下。

2. 啟動腳本:start_mysql.sh

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

關鍵參數說明

  • --pid-file、--socket、--datadir:將進程 ID、套接字、數據文件集中放在應用目錄下,避免多實例衝突、被誤刪(如放在 /tmp)
  • -O 後接全局優化參數:需根據具體業務調整
  • --port:不同應用用不同端口隔離,解決連接數瓶頸

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"`
exec "$rundir"/home/mysql/bin/mysqladmin \
  -u mysql \
  -S "$rundir"/mysql.sock shutdown

此架構的核心優勢

  1. 多實例隔離:修改 --port 即可啟動多服務,各目錄獨立可打包遷移
  2. 文件集中管理:PID、Socket、數據文件統一在 /data/app_x/,避免 /tmp 被其他程序誤刪
  3. 災難恢復快:硬盤 1 故障時,將硬盤 2 掛載到裝好 MySQL 的新服務器即可秒級恢復(無需額外備份配置文件)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved