重新编辑启动脚本
发布时间:2022-03-08 23:11:23 所属栏目:MySql教程 来源:互联网
导读:!/bin/bash user=root port=3306 CmdPath=/opt/mysql/bin password=xxxxxxxxxx base_dir=/opt/mysql inst_dir=/data/3306 alive=00 sMysqld=0 sMysqldSafe=0 fSock=0 fPID=0 check_alive() { echo running check_alive... if [ ps -ef | grep $port | grep -
!/bin/bash user=root port=3306 CmdPath=/opt/mysql/bin password=xxxxxxxxxx base_dir=/opt/mysql inst_dir=/data/3306 alive="00" sMysqld=0 sMysqldSafe=0 fSock=0 fPID=0 check_alive() { echo "running check_alive..." if [ ps -ef | grep $port | grep -v grep | grep 'mysqld ' |awk '{print $2}' ];then echo "Process mysqld is running!" sMysqld=1 else echo "Process mysqld is not running!" sMysqld=0 fi if [ `ps -ef | grep 3306 | grep -v grep | grep 'mysqld_safe' |awk '{print $2}'` ];then echo "Process mysqld_safe is running!" sMysqldSafe=1 else echo "Process mysqld_safe is not running!" sMysqldSafe=0 fi if [ -e ${inst_dir}/mysql.sock ];then echo "socked file exists!" fSock=1 else echo "socked file not exists!" fSock=0 fi if [ -e ${inst_dir}/mysql.pid ];then echo "pid file exists!" fPID=1 else echo "pid file not exists!" fPID=0 fi if [ $sMysqld -eq 1 ];then if [ $fPID -eq 0 ];then echo "PID is missing, tring to recreate..." ps -ef | grep $port | grep -v grep | grep 'mysqld ' |awk '{print $2}' > ${inst_dir}/mysql.pid if [ -e ${inst_dir}/mysql.pid ]; then echo "pid file is created!" else echo "can not create PID file, please have a check!" fi fi if [ $sMysqldSafe -eq 0 ];then echo "Process mysqld_safe is missing, please have a check! May cause mysqld crash!" fi if [ $fSock -eq 1 ];then echo "MySQL running fine!!!" alive="11" else echo "socket file is missing, you may have to login without socket!" alive="10" fi else echo "process mysqld is missing, mysql is stopped!" if [ $fSock -eq 1 ] | [ $fPID -eq 1 ];then echo "mysql was stopped abnormality!" echo "cleaning socket file and pid file" alive="01" else alive="00" fi fi } start_mysql() { check_alive printf "MySQL is starting ... n" if [ $alive == "00" ]; then ${CmdPath}/mysqld_safe --defaults-file=${inst_dir}/my.cnf --user=${user} 2>&1 >/dev/null & else if [ $alive == "11" ]; then echo "MySQL is runnig!" else if [ $alive == "01" ]; then echo "MySQL was stopped but pid or sock file still exits!" echo "Cleanning pid or sock files!" if [ $fSock -eq 1 ];then rm -f ${inst_dir}/mysql.sock fi if [ $fPID -eq 1 ];then rm -f ${inst_dir}/mysql.pid fi echo "Tring to start MySQL again!!!" ${CmdPath}/mysqld_safe --defaults-file=${inst_dir}/my.cnf --user=${user} 2>&1 >/dev/null & fi fi fi } stop_mysql() { check_alive printf "MySQL is Stopping...n" if [ $alive == "11" ]; then ${CmdPath}/mysqladmin -u root -p${password} -S ${inst_dir}/mysql.sock shutdown 2>&1 >/dev/null & else if [ $alive == "10" ]; then ${CmdPath}/mysqladmin -u root -p${password} -h $HOSTNAME -P $port --protocol tcp shutdown 2>&1 >/dev/null & else echo "MySQL is not running, no need stop!" fi fi } restart_mysql() { stop_mysql sleep 5 if [ $? == 0 ];then start_mysql else echo "stop mysql failed!" fi } case $1 in start) start_mysql ;; stop) stop_mysql ;; restart) restart_mysql ;; status) status_mysql ;; alive) check_alive ;; *) printf "Please in put start|stop|restart|status as input" ;; esac (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |