summaryrefslogtreecommitdiff
path: root/databases/mysql5-server/files/mysqld.sh
diff options
context:
space:
mode:
Diffstat (limited to 'databases/mysql5-server/files/mysqld.sh')
-rw-r--r--databases/mysql5-server/files/mysqld.sh103
1 files changed, 103 insertions, 0 deletions
diff --git a/databases/mysql5-server/files/mysqld.sh b/databases/mysql5-server/files/mysqld.sh
new file mode 100644
index 00000000000..d7036a207e0
--- /dev/null
+++ b/databases/mysql5-server/files/mysqld.sh
@@ -0,0 +1,103 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: mysqld.sh,v 1.1.1.1 2005/10/31 09:22:26 xtraeme Exp $
+#
+# PROVIDE: mysqld
+# REQUIRE: DAEMON LOGIN mountall
+# KEYWORD: shutdown
+#
+# You will need to set some variables in /etc/rc.conf to start MySQL:
+#
+# mysqld=YES
+#
+# The following variables are optional:
+#
+# mysqld_user="mysql" # user to run mysqld as
+# mysqld_datadir="/path/to/home" # path to MySQL database directory
+#
+
+if [ -f /etc/rc.subr ]; then
+ . /etc/rc.subr
+fi
+
+name="mysqld"
+rcvar=${name}
+command="@PREFIX@/bin/mysqld_safe"
+procname="@PREFIX@/libexec/${name}"
+: ${mysqld_user:=@MYSQL_USER@}
+: ${mysqld_group:=@MYSQL_GROUP@}
+: ${mysqld_datadir:=@MYSQL_DATADIR@}
+pidfile="${mysqld_datadir}/`@HOSTNAME_CMD@`.pid"
+
+extra_commands="initdb"
+initdb_cmd="mysqld_initdb"
+start_precmd="mysqld_precmd"
+start_cmd="mysqld_start"
+
+mysqld_precmd()
+{
+ if [ ! -d ${mysqld_datadir} ]; then
+ mysqld_initdb
+ fi
+}
+
+mysqld_initdb()
+{
+ initdb="@PREFIX@/bin/mysql_install_db"
+ if [ ! -x ${initdb} ]; then
+ return 1
+ fi
+ if [ -f ${mysqld_datadir}/mysql/host.frm ]; then
+ @ECHO@ "The MySQL database has already been initialized."
+ @ECHO@ "Skipping database initialization."
+ else
+ @ECHO@ "Initializing MySQL database system tables."
+ ${initdb} --force --user=${mysqld_user} \
+ --datadir=${mysqld_datadir} || return 1
+ if [ -d ${mysqld_datadir} ]; then
+ @CHOWN@ -R ${mysqld_user}:${mysqld_group} \
+ ${mysqld_datadir}
+ fi
+ fi
+}
+
+mysqld_start()
+{
+ for f in $required_files; do
+ if [ ! -r "$f" ]; then
+ @ECHO@ 1>&2 "$0: WARNING: $f is not readable"
+ if [ -z $rc_force ]; then
+ return 1
+ fi
+ fi
+ done
+ @ECHO@ "Starting ${name}."
+ ulimit -n 4096
+ cd @PREFIX@
+ ${command} --user=${mysqld_user} --datadir=${mysqld_datadir} \
+ --pid-file=${pidfile} ${mysqld_flags} &
+}
+
+if [ -f /etc/rc.subr -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then
+ load_rc_config $name
+ run_rc_command "$1"
+else
+ if [ -f /etc/rc.conf ]; then
+ . /etc/rc.conf
+ fi
+ case "$1" in
+ initdb)
+ eval ${initdb_cmd}
+ ;;
+ stop)
+ if [ -r "${pidfile}" ]; then
+ @ECHO@ "Stopping ${name}."
+ kill `@CAT@ ${pidfile}`
+ fi
+ ;;
+ *)
+ eval ${start_precmd}
+ eval ${start_cmd}
+ ;;
+ esac
+fi