diff options
author | John Marino <marino@FreeBSD.org> | 2014-11-04 08:21:55 +0000 |
---|---|---|
committer | John Marino <marino@FreeBSD.org> | 2014-11-04 08:21:55 +0000 |
commit | d2bcf058dc37256369bad9b9a1157fc76c059467 (patch) | |
tree | 72ab3bccf2944cb7cd4cc6703c6db257586e3e02 /databases/mariadb100-server/files/mysql-server.in | |
parent | Remove deprecated KDE4=kdehier (diff) |
Add new ports databases/mariadb100-server and -client (version 10.0)
PR: 193539
Submitted by: spil.oss (gmail)
MariaDB is a database server that offers drop-in replacement functionality
for MySQL. MariaDB is built by some of the original authors of MySQL, with
assistance from the broader community of Free and open source software
developers. In addition to the core functionality of MySQL, MariaDB offers
a rich set of feature enhancements including alternate storage engines,
server optimizations, and patches.
Notes
Notes:
svn path=/head/; revision=372136
Diffstat (limited to 'databases/mariadb100-server/files/mysql-server.in')
-rw-r--r-- | databases/mariadb100-server/files/mysql-server.in | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/databases/mariadb100-server/files/mysql-server.in b/databases/mariadb100-server/files/mysql-server.in new file mode 100644 index 000000000000..5f5603f2f575 --- /dev/null +++ b/databases/mariadb100-server/files/mysql-server.in @@ -0,0 +1,139 @@ +#!/bin/sh + +# $FreeBSD: head/databases/mariadb55-server/files/mysql-server.in 361647 2014-07-12 22:42:33Z rakuco $ +# +# PROVIDE: mysql +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following line to /etc/rc.conf to enable mysql: +# mysql_(instance_)?enable (bool): Set to "NO" by default. +# Set it to "YES" to enable MySQL. +# mysql_(instance_)?limits (bool): Set to "NO" by default. +# Set it to yes to run `limits -e -U mysql` +# just before mysql starts. +# mysql_(instance_)?dbdir (str): Default to "/var/db/mysql" +# Base database directory. +# mysql_(instance_)?args (str): Custom additional arguments to be passed +# to mysqld_safe (default empty). +# mysql_(instance_)?pidfile (str): Custum PID file path and name. +# Default to "${mysql_dbdir}/${hostname}.pid". +# mysql_(instance_)?user (str): User to run mysqld as +# Default to "mysql" created by the port +# mysql_(instance_)?optfile (str): Server-specific option file. +# Default to "${mysql_dbdir}/my.cnf". +# mysql_instances (str): Set to "" by default. +# If defined, list of instances to enable + +. /etc/rc.subr + +name="mysql" +rcvar=mysql_enable + +load_rc_config $name + +: ${mysql_enable="NO"} +: ${mysql_limits="NO"} +: ${mysql_user="mysql"} +: ${mysql_limits_args="-e -U $mysql_user"} +: ${mysql_dbdir="/var/db/mysql"} +: ${mysql_optfile="${mysql_dbdir}/my.cnf"} + +command="/usr/sbin/daemon" +procname="%%PREFIX%%/libexec/mysqld" +start_precmd="${name}_prestart" +start_postcmd="${name}_poststart" + +if [ -n "$2" ]; then + instance="$2" + load_rc_config ${name}_${instance} + case "$mysql_instances" in + "$2 "*|*" $2 "*|*" $2"|"$2") + eval mysql_args="\${mysql_${instance}_args:-\"${mysql_args}\"}" + eval mysql_dbdir="\${mysql_${instance}_dbdir:-\"/var/db/mysql_${instance}\"}" + eval mysql_limits="\${mysql_${instance}_limits:-\"${mysql_limits}\"}" + eval mysql_user="\${mysql_${instance}_user:-\"${mysql_user}\"}" + eval mysql_limits_args="\${mysql_${instance}_limits_args:-\"-e -U $mysql_user\"}" + eval mysql_optfile="\${mysql_${instance}_optfile:-\"${mysql_dbdir}/my.cnf\"}" + eval mysql_pidfile="\${mysql_${instance}_pidfile:-\"${mysql_dbdir}/`/bin/hostname`.pid\"}" + ;; + *) + err 1 "$2 not found in mysql_instances" ;; + esac +else + if [ -n "${mysql_instances}" -a -n "$1" ]; then + for instance in ${mysql_instances}; do + eval _enable="\${mysql_${instance}_enable}" + case "${_enable:-${mysql_enable}}" in + [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) + continue + ;; + [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) + ;; + *) + if [ -z "$_enable" ]; then + _var=mysql_enable + else + _var=mysql_${instance}_enable + fi + warn "Bad value" \ + "'${_enable:-${mysql_enable}}'" \ + "for ${_var}. " \ + "Instance ${instance} skipped." + continue + ;; + esac + echo "===> mysql instance: ${instance}" + if %%PREFIX%%/etc/rc.d/mysql-server $1 ${instance}; then + success="${instance} ${success}" + else + failed="${instance} (${retcode}) ${failed}" + fi + done + exit 0 + else + mysql_pidfile=${mysql_pidfile:-"${mysql_dbdir}/`/bin/hostname`.pid"} + fi +fi + +pidfile=$mysql_pidfile +mysql_install_db="%%PREFIX%%/bin/mysql_install_db" +mysql_install_db_args="--basedir=%%PREFIX%% --datadir=${mysql_dbdir} --force" +command_args="-c -f %%PREFIX%%/bin/mysqld_safe --defaults-extra-file=${mysql_optfile} --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args}" + +mysql_create_auth_tables() +{ + eval $mysql_install_db $mysql_install_db_args + [ $? -eq 0 ] && chown -R ${mysql_user}:$(id -gn $mysql_user) ${mysql_dbdir} +} + +mysql_prestart() +{ + local dir + for dir in /etc /etc/mysql; do + if [ -f "${dir}/my.cnf" ]; then + echo "Please move existing my.cnf file from ${dir} to %%PREFIX%%${dir}" + return 1 + fi + done + if [ ! -d "${mysql_dbdir}/mysql/." ]; then + mysql_create_auth_tables || return 1 + fi + if checkyesno mysql_limits; then + eval `/usr/bin/limits ${mysql_limits_args:-"-e -U $mysql_user"}` 2>/dev/null + else + return 0 + fi +} + +mysql_poststart() +{ + local timeout=15 + while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do + timeout=$(( timeout - 1 )) + sleep 1 + done + return 0 +} + +run_rc_command "$1" |