diff options
Diffstat (limited to 'tests/local-server/run_mysqld')
-rwxr-xr-x | tests/local-server/run_mysqld | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/local-server/run_mysqld b/tests/local-server/run_mysqld new file mode 100755 index 0000000..ba2c9f5 --- /dev/null +++ b/tests/local-server/run_mysqld @@ -0,0 +1,76 @@ +#!/bin/sh + +set -e + +MYSQLD=/usr/sbin/mysqld +dir=`dirname $0` +ROOT=$dir/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 apache (on port $PORT)" + echo "Usage: $me <start|stop|restart|reload|status> - the usual" + echo "Usage: $me <init|clean> - 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() { + ( + echo "CREATE DATABASE mysql;" + #echo "GRANT ALL on *.* to 'root'@'localhost' identified by '$ROOTPW';" + echo "USE mysql;" + cat /usr/share/mysql/mysql_system_tables.sql + echo "UPDATE user SET password=PASSWORD("$ROOTPW") WHERE user='root';" + echo "FLUSH PRIVILEGES;" + ) | run_mysqld --bootstrap --skip-grant-tables + set -x + run_mysqld + sleep 5 + run_mysql_upgrade + "$0" stop + set +x +} + +case "$1" in +start) shift; run_mysqld "$@";; +init) init_mysql;; +stop) kill `cat "$PID_FILE"`;; +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/* + ;; +*) usage; exit 1;; +esac + |