summaryrefslogtreecommitdiff
path: root/tests/local-server/run_mysqld
diff options
context:
space:
mode:
Diffstat (limited to 'tests/local-server/run_mysqld')
-rwxr-xr-xtests/local-server/run_mysqld76
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
+