欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

case语句编写mysql启动脚本

程序员文章站 2022-05-13 16:09:49
例子:开发mysql单实例或者多实例启动脚本 已知mysql多实例启动命令为: mysqld_safe --deafaults-file=/data/3306/my.cnf &...

例子:开发mysql单实例或者多实例启动脚本

已知mysql多实例启动命令为:

mysqld_safe --deafaults-file=/data/3306/my.cnf &

停止命令

mysqladmin -u root -p123 -S /data/3306/mysql.sock shutdown

请完成mysql单实例或者多实例启动脚本编写。

要求:用函数、case语句等实现。

[root@node01 day10]# vi start_db.sh

#!/bin/sh

# chkconfig: 2345 35 67

# description: start rsync and stop rsync scripts.

. /etc/init.d/functions

path=/usr/bin/

pass=123

user=root

function usage(){

echo "$0 {start|stop|restart}"

exit 1

}

[ $# -ne 1 ] && usage

function start_mysql(){

$path/mysqld_safe --user=mysql >/dev/null 2>&1 &

if [ $? -eq 0 ]

then

action "start mysql" /bin/true

else

action "start mysql" /bin/false

fi

}

function stop_mysql(){

mysqladmin -u$user -p$pass shutdown >/dev/null 2>&1

if [ $? -eq 0 ]

then

action "stop mysql" /bin/true

else

action "stop mysql" /bin/false

fi

}

case "$1" in

start)

start_mysql

RETVAL=$?

;;

stop)

stop_mysql

RETVAL=$?

;;

restart)

stop_mysql

sleep 2

start_mysql

RETVAL=$?

;;

*)

usage

esac

[root@node01 day10]# sh start_db01.sh start

start mysql [ OK ]

[root@node01 day10]# sh start_db01.sh stop

stop mysql [ OK ]

[root@node01 day10]# sh start_db01.sh restart

stop mysql [FAILED]

start mysql [ OK ]

[root@node01 day10]# mysql -uroot -p123

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>