78 lines
1.3 KiB
Plaintext
78 lines
1.3 KiB
Plaintext
|
#!/bin/sh
|
||
|
#
|
||
|
# mysql
|
||
|
#
|
||
|
|
||
|
MYSQL_LIB="/var/lib/mysql"
|
||
|
MYSQL_RUN="/run/mysql"
|
||
|
MYSQL_PID="$MYSQL_RUN/mysqld.pid"
|
||
|
MYSQL_BIN="/usr/bin"
|
||
|
|
||
|
wait_for_ready() {
|
||
|
WAIT_DELAY=5
|
||
|
while [ $WAIT_DELAY -gt 0 ]; do
|
||
|
if $MYSQL_BIN/mysqladmin ping > /dev/null 2>&1; then
|
||
|
return 0
|
||
|
fi
|
||
|
sleep 1
|
||
|
: $((WAIT_DELAY -= 1))
|
||
|
done
|
||
|
return 1
|
||
|
}
|
||
|
|
||
|
start() {
|
||
|
if [ `ls -1 $MYSQL_LIB | wc -l` = 0 ] ; then
|
||
|
printf "Creating mysql system tables ... "
|
||
|
$MYSQL_BIN/mysql_install_db --basedir=/usr --user=mysql \
|
||
|
--datadir=$MYSQL_LIB > /dev/null 2>&1
|
||
|
if [ $? != 0 ]; then
|
||
|
echo "FAIL"
|
||
|
exit 1
|
||
|
fi
|
||
|
echo "OK"
|
||
|
fi
|
||
|
|
||
|
# mysqld runs as user mysql, but /run is only writable by root
|
||
|
# so create a subdirectory for mysql.
|
||
|
install -d -o mysql -g root -m 0755 $MYSQL_RUN
|
||
|
|
||
|
# We don't use start-stop-daemon because mysqld has its own
|
||
|
# wrapper script.
|
||
|
printf "Starting mysql ... "
|
||
|
$MYSQL_BIN/mysqld_safe --pid-file=$MYSQL_PID --user=mysql \
|
||
|
> /dev/null 2>&1 &
|
||
|
wait_for_ready
|
||
|
[ $? = 0 ] && echo "OK" || echo "FAIL"
|
||
|
}
|
||
|
|
||
|
stop() {
|
||
|
printf "Stopping mysql ... "
|
||
|
if [ -f $MYSQL_PID ]; then
|
||
|
kill `cat $MYSQL_PID` > /dev/null 2>&1
|
||
|
[ $? = 0 ] && echo "OK" || echo "FAIL"
|
||
|
else
|
||
|
echo "FAIL"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
restart() {
|
||
|
stop
|
||
|
sleep 1
|
||
|
start
|
||
|
}
|
||
|
|
||
|
case "$1" in
|
||
|
start)
|
||
|
start
|
||
|
;;
|
||
|
stop)
|
||
|
stop
|
||
|
;;
|
||
|
restart)
|
||
|
restart
|
||
|
;;
|
||
|
*)
|
||
|
echo "Usage: $0 {start|stop|restart}"
|
||
|
;;
|
||
|
esac
|