以下是使用MYSQL服務的一些經驗
主要從以下幾個方面考慮的MYSQL服務規劃設計
MYSQL服務的安裝/配置的通用性
系統的升級和數據遷移方便性
備份和系統快速恢復
MYSQL服務器的規劃
為了以後維護升級備份的方便和數據的安全性最好將MYSQL程序文件和數據分別安裝在不同的硬件上
/
/usr <== 操作系統 }==> 硬盤
/home/mysql <== mysql應用程序
/data/app_/ <== 應用數據和腳本 }==> 硬盤
/data/app_/
/data/app_/
mysql服務的安裝和服務的啟動
MYSQL一般使用當前STABLE的版本盡量不使用withcharset=選項我感覺withcharset只在按字母排序的時候才有用這些選項會對數據的遷移帶來很多麻煩
configure prefix=/home/mysql
make
make install
服務的啟動和停止
復制缺省的mysql/var/mysql到 /data/app_/目錄下
MYSQLD的啟動腳本
start_mysqlsh
#!/bin/sh
rundir=`dirname $`
echo $rundir
/home/mysql/bin/safe_mysqld user=mysql pidfile=$rundir/mysqlpid datadir=$rundir/var $@\
O max_connections= O wait_timeout= O key_buffer=M port= socket=$rundir/mysqlsock &
注釋
pidfile=$rundir/mysqlpid socket=$rundir/mysqlsock datadir=$rundir/var
目的都是將相應數據和應用臨時文件放在一起
O 後面一般是服務器啟動全局變量優化參數有時候需要根據具體應用調整
port: 不同的應用使用PORT參數分布到不同的服務上去一個服務可以提供的連接數一般是MYSQL服務的主要瓶頸
修改不同的服務到不同的端口後在rclocal文件中加入
/data/app_/start_mysqlsh
/data/app_/start_mysqlsh
/data/app_/start_mysqlsh
注意必須寫全路徑
MYSQLD的停止腳本stop_mysqlsh
#!/bin/sh
rundir=`dirname $`
echo $rundir
/home/mysql/bin/mysqladmin u mysql S$rundir/mysqlsock shutdown
使用這個腳本的好處在於
多個服務啟動只需要修改腳本中的port=參數單個目錄下的數據和服務腳本都是可以獨立打包的
所有服務相應文件都位於/data/app_/目錄下比如mysqlpid mysqlsock當一台服務器上啟動多個服務時多個服務不會互相影響但都放到缺省的/tmp/下則有可能被其他應用誤刪
當硬盤出問題以後直接將硬盤放到一台裝好MYSQL的服務器上就可以立刻恢復服務(如果放到mycnf裡則還需要備份相應的配置文件)
服務啟動後/data/app_/下相應的文件和目錄分布如下
/data/app_/
start_mysqlsh 服務啟動腳本
stop_mysqlsh 服務停止腳本
mysqlpid 服務的進程ID
mysqlsock 服務的SOCK
[] []
From:http://tw.wingwit.com/Article/program/MySQL/201311/29607.html