#!/bin/sh set -e MYSQLD=/usr/sbin/mysqld DIR=`dirname $0` DIR_FULL=`realpath $DIR` ROOT=$DIR_FULL/mysqld PID_FILE="$ROOT/mysql.pid" MY_CNF="$ROOT/my.cnf" PORT=3316 ROOTPW=123456 usage() { me=`basename $0` echo "$me: runs a local instance of mysql (on port $PORT)" echo "Usage: $me - the usual" echo "Usage: $me - install / remove the databases" } run_mysqld() { $MYSQLD \ --defaults-file=$MY_CNF \ --basedir=$ROOT \ --pid-file=$PID_FILE \ --port=$PORT \ --socket=$ROOT/socket \ "$@" } run_mysql_upgrade() { mysql_upgrade \ --defaults-file=$MY_CNF \ "$@" } init_mysql() { me=`id -un` mysql_install_db \ --defaults-file=$MY_CNF \ --basedir="$ROOT" \ --datadir="$ROOT/data" \ --port=$PORT \ --socket=$ROOT/socket \ --user="$me" } run_client() { mysql \ --defaults-file=$MY_CNF \ --port=$PORT \ --socket=$ROOT/socket \ --user="root" \ "$@" } case "$1" in start) shift; run_mysqld "$@" &;; init) init_mysql;; stop) pid=`cat "$PID_FILE" 2>/dev/null` if [ "$pid" ]; then kill $pid fi ;; restart) "$0" stop #sleep 1 "$0" start ;; reload) kill -HUP `cat "$PID_FILE"`;; status) if [ -f "$PID_FILE" ]; then ps `cat "$PID_FILE"` else echo "Not running" fi ;; clean) # TODO: stop? Check if we're alive? rm -rf $ROOT/data/* ;; client) shift; run_client "$@";; *) usage; exit 1;; esac