summaryrefslogtreecommitdiff
path: root/support-files/mysql.server.sh
diff options
context:
space:
mode:
Diffstat (limited to 'support-files/mysql.server.sh')
-rw-r--r--support-files/mysql.server.sh123
1 files changed, 123 insertions, 0 deletions
diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh
new file mode 100644
index 00000000000..f6a75e22fea
--- /dev/null
+++ b/support-files/mysql.server.sh
@@ -0,0 +1,123 @@
+#!/bin/sh
+# Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
+# This file is public domain and comes with NO WARRANTY of any kind
+
+# Mysql daemon start/stop script.
+
+# Usually this is put in /etc/init.d (at least on machines SYSV R4
+# based systems) and linked to /etc/rc3.d/S99mysql and /etc/rc0.d/S01mysql.
+# When this is done the mysql server will be started when the machine is started
+# and shut down when the systems goes down.
+
+# Comments to support chkconfig on RedHat Linux
+# chkconfig: 2345 90 90
+# description: A very fast and reliable SQL database engine.
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+basedir=@prefix@
+bindir=@bindir@
+datadir=@localstatedir@
+pid_file=@localstatedir@/mysqld.pid
+log_file=@localstatedir@/mysqld.log
+# Run mysqld as this user.
+mysql_daemon_user=@MYSQLD_USER@
+export PATH
+
+mode=$1
+
+if test -w / # determine if we should look at the root config file
+then # or user config file
+ conf=/etc/my.cnf
+else
+ conf=$HOME/.my.cnf # Using the users config file
+fi
+
+# The following code tries to get the variables safe_mysqld needs from the
+# config file. This isn't perfect as this ignores groups, but it should
+# work as the options doesn't conflict with anything else.
+
+if test -f "$conf" # Extract those fields we need from config file.
+then
+ if grep "^datadir" $conf >/dev/null
+ then
+ datadir=`grep "^datadir" $conf | cut -f 2 -d= | tr -d ' '`
+ fi
+ if grep "^user" $conf >/dev/null
+ then
+ mysql_daemon_user=`grep "^user" $conf | cut -f 2 -d= | tr -d ' ' | head -1`
+ fi
+ if grep "^pid-file" $conf >/dev/null
+ then
+ pid_file=`grep "^pid-file" $conf | cut -f 2 -d= | tr -d ' '`
+ else
+ if test -d "$datadir"
+ then
+ pid_file=$datadir/`hostname`.pid
+ fi
+ fi
+ if grep "^basedir" $conf >/dev/null
+ then
+ basedir=`grep "^basedir" $conf | cut -f 2 -d= | tr -d ' '`
+ bindir=$basedir/bin
+ fi
+ if grep "^bindir" $conf >/dev/null
+ then
+ bindir=`grep "^bindir" $conf | cut -f 2 -d= | tr -d ' '`
+ fi
+ if grep "^log[ \t]*=" $conf >/dev/null
+ then
+ log_file=`grep "log[ \t]*=" $conf | cut -f 2 -d= | tr -d ' '`
+ fi
+fi
+
+
+# Safeguard (relative paths, core dumps..)
+cd $basedir
+
+case "$mode" in
+ 'start')
+ # Start daemon
+
+ if test -x $bindir/safe_mysqld
+ then
+ # Give extra arguments to mysqld with the my.cnf file. This script may
+ # be overwritten at next upgrade.
+ $bindir/safe_mysqld \
+ --user=$mysql_daemon_user --datadir=$datadir --pid-file=$pid_file --log=$log_file &
+ else
+ echo "Can't execute $bindir/safe_mysqld"
+ fi
+ ;;
+
+ 'stop')
+ # Stop daemon. We use a signal here to avoid having to know the
+ # root password.
+ if test -f "$pid_file"
+ then
+ mysqld_pid=`cat $pid_file`
+ echo "Killing mysqld with pid $mysqld_pid"
+ kill $mysqld_pid
+ # mysqld should remove the pid_file when it exits, so wait for it.
+
+ sleep 1
+ while [ -s $pid_file -a "$flags" != aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]
+ do [ -z "$flags" ] && echo "Wait for mysqld to exit\c" || echo ".\c"
+ flags=a$flags
+ sleep 1
+ done
+ if [ -s $pid_file ]
+ then echo " gave up waiting!"
+ elif [ -n "$flags" ]
+ then echo " done"
+ fi
+ else
+ echo "No mysqld pid file found. Looked for $pid_file."
+ fi
+ ;;
+
+ *)
+ # usage
+ echo "usage: $0 start|stop"
+ exit 1
+ ;;
+esac