MySQLの運用保守-3、書かれたスクリプトを用いたマルチインスタンス・コントロール

実験環境
で、この資料「MySQLの運用・保守は-2、マルチインスタンスの配備」なども展開した後、実験テスト環境には、環境に成功しています。

使用
1、スクリプティング、名前のmysqldを、それが権限実行持たせ
、2を別のディレクトリインスタンスにmysqldをコピーします

[]#ツリー-L 2 /データ/

/data/
├── 3306
│   ├── dbfile
│   ├── my.cnf
│   └── mysqld
└── 3307
├── dbfile
├── my.cnf
└── mysqld

図3は、許容される同じインスタンスに属する、mysqldの内のポートを変更する
パラメータなしで実行し、4

[]#/データ/ 3306 / mysqldを起動し
、MySQLが開始され...
[]#/データ/ 3306 / mysqldを停止
MySQLが停止されています...

5、それが自動的に開いて実行されるように、ローカルに/ etc / rc /スクリプトを記述

[]#vimのは/etc/rc.local

/data/3306/mysqld start
/data/3307/mysqld start

スクリプトの内容

[]#vimの/データ/ 3306 / mysqldを
#/ binに/ shを

m_user='root'                         //定义使用哪个用户控制MySQL
m_password='1qaz3edc'       //定义控制MySQL的用户密码
m_port='3306'                        //定义MySQL的端口号,用于区分是哪个实例,主要修改此变量
m_cmddir='/app/mysql/bin'    //定义MySQL的环境目录
#start_function                       //定义启动MySQL的函数
function_mysql_start()
{
if [ -e /data/${m_port}/mysql.sock ];then
printf 'MySQL is running...\n'
exit 1
else
printf 'MySQL is starting...\n'
${m_cmddir}/mysqld_safe --defaults-file=/data/${m_port}/my.cnf 2>&1 >/dev/null &        //核心命令,启动MySQL
//注意gt;是大于号,51cto无法正常显示大于号。
fi
}
#stop_function                       //定义关闭MySQL的函数
function_mysql_stop()
{
if [ -e /data/${m_port}/mysql.sock ];then
printf 'MySQL is stopping...\n'
${m_cmddir}/mysqladmin -S /data/${m_port}/mysql.sock -u${m_user} -p${m_password} shutdown                   //核心命令,关闭MySQL
else
printf "MySQL is stoped...\n"
exit 1
fi
}
#do it                                      //针对不同的参数,引用不同的函数。
case $1 in
start)
function_mysql_start
;;
stop)
function_mysql_stop
;;
*)
printf "arguments is error,please enter start or stop。"
;;
esac

おすすめ

転載: blog.51cto.com/yuanshuai/2484845