Changeset View
Changeset View
Standalone View
Standalone View
databases/mysql80-server/files/mysql-server.in
#!/bin/sh | #!/bin/sh | ||||
# PROVIDE: mysql | # PROVIDE: mysql | ||||
# REQUIRE: LOGIN | # REQUIRE: LOGIN | ||||
# KEYWORD: shutdown | # KEYWORD: shutdown | ||||
# | # | ||||
# Add the following line to /etc/rc.conf to enable mysql: | # Add the following line to /etc/rc.conf to enable mysql: | ||||
# mysql_enable (bool): Set to "NO" by default. | # mysql_enable (bool): Set to "NO" by default. | ||||
# Set it to "YES" to enable MySQL. | # Set it to "YES" to enable MySQL. | ||||
%%LEGACY_LIMITS%%# mysql_limits (bool): Set to "NO" by default. | |||||
%%LEGACY_LIMITS%%# Set it to yes to run `limits -e -U mysql` | |||||
%%LEGACY_LIMITS%%# just before mysql starts. | |||||
# mysql_dbdir (str): Default to "%%MY_DBDIR%%" | # mysql_dbdir (str): Default to "%%MY_DBDIR%%" | ||||
# Base database directory. | # Base database directory. | ||||
# mysql_confdir (str): Default to "%%ETCDIR%%" | # mysql_confdir (str): Default to "%%ETCDIR%%" | ||||
# Base configuration directory. | # Base configuration directory. | ||||
# mysql_optfile (str): Server-specific option file. | # mysql_optfile (str): Server-specific option file. | ||||
# Set it in the rc.conf or default behaviour of | # Set it in the rc.conf or default behaviour of | ||||
# `mysqld_safe` itself, will be picking | # `mysqld_safe` itself, will be picking | ||||
# ${mysql_confdir}/my.cnf if it exists. | # ${mysql_confdir}/my.cnf if it exists. | ||||
# mysql_pidfile (str): Custum PID file path and name. | # mysql_pidfile (str): Custum PID file path and name. | ||||
# Default to "${mysql_dbdir}/${hostname}.pid". | # Default to "${mysql_dbdir}/${hostname}.pid". | ||||
# mysql_args (str): Custom additional arguments to be passed | # mysql_args (str): Custom additional arguments to be passed | ||||
# to mysqld_safe (default empty). | # to mysqld_safe (default empty). | ||||
# | # | ||||
. /etc/rc.subr | . /etc/rc.subr | ||||
name="mysql" | name="mysql" | ||||
rcvar=mysql_enable | rcvar=mysql_enable | ||||
load_rc_config $name | load_rc_config $name | ||||
: ${mysql_enable="NO"} | : ${mysql_enable="NO"} | ||||
%%LEGACY_LIMITS%%: ${mysql_limits="NO"} | |||||
: ${mysql_dbdir="%%MY_DBDIR%%"} | : ${mysql_dbdir="%%MY_DBDIR%%"} | ||||
: ${mysql_confdir="%%ETCDIR%%"} | : ${mysql_confdir="%%ETCDIR%%"} | ||||
if [ -f "${mysql_confdir}/my.cnf" ]; then | if [ -f "${mysql_confdir}/my.cnf" ]; then | ||||
: ${mysql_optfile="${mysql_confdir}/my.cnf"} | : ${mysql_optfile="${mysql_confdir}/my.cnf"} | ||||
elif [ -f "${mysql_dbdir}/my.cnf" ]; then | elif [ -f "${mysql_dbdir}/my.cnf" ]; then | ||||
: ${mysql_optfile="${mysql_dbdir}/my.cnf"} | : ${mysql_optfile="${mysql_dbdir}/my.cnf"} | ||||
fi | fi | ||||
if [ ! -z "${mysql_optfile}" ]; then | if [ ! -z "${mysql_optfile}" ]; then | ||||
mysql_extra="--defaults-extra-file=${mysql_optfile}" | mysql_extra="--defaults-extra-file=${mysql_optfile}" | ||||
fi | fi | ||||
mysql_user="mysql" | mysql_user="mysql" | ||||
%%LEGACY_LIMITS%%mysql_limits_args="-e -U ${mysql_user}" | |||||
: ${hostname:=`/bin/hostname`} | : ${hostname:=`/bin/hostname`} | ||||
pidfile=${mysql_pidfile:-"${mysql_dbdir}/${hostname}.pid"} | pidfile=${mysql_pidfile:-"${mysql_dbdir}/${hostname}.pid"} | ||||
command="/usr/sbin/daemon" | command="/usr/sbin/daemon" | ||||
command_args="-c -f %%PREFIX%%/bin/mysqld_safe ${mysql_extra} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --pid-file=${pidfile} --user=${mysql_user} ${mysql_args} %%FEDER%% %%PERFSCHEMRC%%" | command_args="-c -f %%PREFIX%%/bin/mysqld_safe ${mysql_extra} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --pid-file=${pidfile} --user=${mysql_user} ${mysql_args} %%FEDER%% %%PERFSCHEMRC%%" | ||||
procname="%%PREFIX%%/libexec/mysqld" | procname="%%PREFIX%%/libexec/mysqld" | ||||
start_precmd="${name}_prestart" | start_precmd="${name}_prestart" | ||||
start_postcmd="${name}_poststart" | start_postcmd="${name}_poststart" | ||||
mysqld_init="${procname}" | mysqld_init="${procname}" | ||||
mysqld_init_args="${mysql_extra} --initialize-insecure --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --user=${mysql_user}" | mysqld_init_args="${mysql_extra} --initialize-insecure --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --user=${mysql_user}" | ||||
mysql_create_auth_tables() | mysql_create_auth_tables() | ||||
{ | { | ||||
eval $mysqld_init $mysqld_init_args >/dev/null 2>/dev/null | eval $mysqld_init $mysqld_init_args >/dev/null 2>/dev/null | ||||
} | } | ||||
mysql_prestart() | mysql_prestart() | ||||
{ | { | ||||
if [ ! -d "${mysql_dbdir}/mysql/." ]; then | if [ ! -d "${mysql_dbdir}/mysql/." ]; then | ||||
mysql_create_auth_tables || return 1 | mysql_create_auth_tables || return 1 | ||||
fi | fi | ||||
%%LEGACY_LIMITS%% if checkyesno mysql_limits; then | return 0 | ||||
%%LEGACY_LIMITS%% eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null | |||||
%%LEGACY_LIMITS%% else | |||||
%%LEGACY_LIMITS%% return 0 | |||||
%%LEGACY_LIMITS%% fi | |||||
%%MODERN_LIMITS%% return 0 | |||||
} | } | ||||
mysql_poststart() | mysql_poststart() | ||||
{ | { | ||||
local timeout=15 | local timeout=15 | ||||
while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do | while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do | ||||
timeout=$(( timeout - 1 )) | timeout=$(( timeout - 1 )) | ||||
sleep 1 | sleep 1 | ||||
done | done | ||||
return 0 | return 0 | ||||
} | } | ||||
run_rc_command "$1" | run_rc_command "$1" |