Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [root@da mysql]# cat /etc/rc.d/init.d/mysqld
- #!/bin/bash
- #
- # mysqld This shell script takes care of starting and stopping
- # the MySQL subsystem (mysqld).
- #
- # chkconfig: - 64 36
- # description: MySQL database server.
- # processname: mysqld
- # config: /etc/my.cnf
- # pidfile: /var/run/mysqld/mysqld.pid
- # Source function library.
- . /etc/rc.d/init.d/functions
- # Source networking configuration.
- . /etc/sysconfig/network
- prog="MySQL"
- # extract value of a MySQL option from /etc/my.cnf
- # Usage: get_mysql_option FILE VARNAME DEFAULT
- # result is returned in $result
- # Ugly as this is, it knows nothing of option file sections ...
- get_mysql_option(){
- result=`sed -n "s/^[ \t]*$2[ \t]*=[ \t]*//p" "$1" 2>/dev/null | tail -n 1`
- if [ -z "$result" ]; then
- # not found, use default
- result="$3"
- else
- # found, still have to deal with quoting and end-of-line comments
- dequoted=`echo "$result" | sed "s/^'\([^']*\)'.*$/\1/"`
- if [ x"$dequoted" != x"$result" ]; then
- result="$dequoted"
- else
- dequoted=`echo "$result" | sed 's/^"\([^"]*\)".*$/\1/'`
- if [ x"$dequoted" != x"$result" ]; then
- result="$dequoted"
- else
- result=`echo "$result" | sed 's/^\([^ \t#]*\).*$/\1/'`
- fi
- fi
- fi
- }
- get_mysql_option /etc/my.cnf datadir "/var/lib/mysql"
- datadir="$result"
- get_mysql_option /etc/my.cnf socket "$datadir/mysql.sock"
- socketfile="$result"
- get_mysql_option /etc/my.cnf err-log "/var/log/mysqld.log"
- errlogfile="$result"
- get_mysql_option /etc/my.cnf pid-file "/var/run/mysqld/mysqld.pid"
- mypidfile="$result"
- start(){
- touch "$errlogfile"
- chown mysql:mysql "$errlogfile"
- chmod 0640 "$errlogfile"
- [ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile"
- if [ ! -d "$datadir/mysql" ] ; then
- action $"Initializing MySQL database: " /usr/bin/mysql_install_db
- ret=$?
- chown -R mysql:mysql "$datadir"
- if [ $ret -ne 0 ] ; then
- return $ret
- fi
- fi
- chown -R mysql:mysql "$datadir"
- chmod 0755 "$datadir"
- # The reason for explicitly specifying --pid-file is that there may
- # be no such entry in my.cnf, and the default behavior will be to not
- # create it at all...
- /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --pid-file="$mypidfile" >/dev/null 2>&1 &
- ret=$?
- # Spin for a maximum of N seconds waiting for the server to come up.
- # Rather than assuming we know a valid username, accept an "access
- # denied" response as meaning the server is functioning.
- if [ $ret -eq 0 ]; then
- STARTTIMEOUT=30
- while [ $STARTTIMEOUT -gt 0 ]; do
- RESPONSE=`/usr/bin/mysqladmin -uUNKNOWN_MYSQL_USER ping 2>&1` && break
- echo "$RESPONSE" | grep -q "Access denied for user" && break
- sleep 1
- let STARTTIMEOUT=${STARTTIMEOUT}-1
- done
- if [ $STARTTIMEOUT -eq 0 ]; then
- echo "Timeout error occurred trying to start MySQL Daemon."
- action $"Starting $prog: " /bin/false
- else
- action $"Starting $prog: " /bin/true
- fi
- else
- action $"Starting $prog: " /bin/false
- fi
- [ $ret -eq 0 ] && touch /var/lock/subsys/mysqld
- return $ret
- }
- stop(){
- MYSQLPID=`cat "$mypidfile" 2>/dev/null `
- if [ -n "$MYSQLPID" ]; then
- /bin/kill "$MYSQLPID" >/dev/null 2>&1
- ret=$?
- if [ $ret -eq 0 ]; then
- STOPTIMEOUT=60
- while [ $STOPTIMEOUT -gt 0 ]; do
- /bin/kill -0 "$MYSQLPID" >/dev/null 2>&1 || break
- sleep 1
- let STOPTIMEOUT=${STOPTIMEOUT}-1
- done
- if [ $STOPTIMEOUT -eq 0 ]; then
- echo "Timeout error occurred trying to stop MySQL Daemon."
- ret=1
- action $"Stopping $prog: " /bin/false
- else
- rm -f /var/lock/subsys/mysqld
- rm -f "$socketfile"
- action $"Stopping $prog: " /bin/true
- fi
- else
- action $"Stopping $prog: " /bin/false
- fi
- else
- ret=1
- action $"Stopping $prog: " /bin/false
- fi
- return $ret
- }
- restart(){
- stop
- start
- }
- condrestart(){
- [ -e /var/lock/subsys/mysqld ] && restart || :
- }
- # See how we were called.
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status mysqld
- ;;
- restart)
- restart
- ;;
- condrestart)
- condrestart
- ;;
- *)
- echo $"Usage: $0 {start|stop|status|condrestart|restart}"
- exit 1
- esac
- exit $?
Add Comment
Please, Sign In to add comment