#!/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