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