mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
122 lines
3.3 KiB
Bash
122 lines
3.3 KiB
Bash
#!/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.
|
|
|
|
# The following variables are only set for letting mysql.server find things
|
|
# if you want to affect other MySQL variables, you should make your changes
|
|
# in the /etc/my.cnf or other configuration files
|
|
|
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
basedir=@prefix@
|
|
bindir=@bindir@
|
|
sbindir=@sbindir@
|
|
datadir=@localstatedir@
|
|
pid_file=@localstatedir@/mysqld.pid
|
|
|
|
export PATH
|
|
|
|
mode=$1
|
|
|
|
GetCNF () {
|
|
|
|
VARIABLES="basedir bindir sbindir datadir pid-file"
|
|
CONFIG_FILES="/etc/my.cnf $basedir/my.cnf $HOME/.my.cnf"
|
|
|
|
for c in $CONFIG_FILES
|
|
do
|
|
if [ -f $c ]
|
|
then
|
|
#echo "Processing $c..."
|
|
for v in $VARIABLES
|
|
do
|
|
# This method assumes last of duplicate $variable entries will be the
|
|
# value set ([mysqld])
|
|
# This could easily be rewritten to gather [xxxxx]-specific entries,
|
|
# but for now it looks like only the mysqld ones are needed for
|
|
# server startup scripts
|
|
thevar=""
|
|
eval `sed -n -e '/^$/d' -e '/^#/d' -e 's,[ ],,g' -e '/=/p' $c |\
|
|
awk -F= -v v=$v '{if ($1 == v) printf ("thevar=\"%s\"\n", $2)}'`
|
|
|
|
# it would be easier if the my.cnf and variable values were
|
|
# all matched, but since they aren't we need to map them here.
|
|
case $v in
|
|
pid-file) v=pid_file ;;
|
|
log) v=log_file ;;
|
|
esac
|
|
|
|
# As long as $thevar isn't blank, use it to set or override current
|
|
# value
|
|
[ "$thevar" != "" ] && eval $v=$thevar
|
|
|
|
done
|
|
#else
|
|
# echo "No $c config file."
|
|
fi
|
|
done
|
|
}
|
|
|
|
# run function to get config values
|
|
GetCNF
|
|
|
|
# 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 \
|
|
--datadir=$datadir --pid-file=$pid_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
|