Changeset View
Changeset View
Standalone View
Standalone View
head/databases/mysqlwsrep56-server/files/mysql-server.in
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
#!/bin/sh | |||||
# | |||||
# $FreeBSD$ | |||||
# | |||||
# PROVIDE: mysql | |||||
# REQUIRE: LOGIN | |||||
# KEYWORD: shutdown | |||||
# | |||||
# Add the following line to /etc/rc.conf to enable mysql: | |||||
# mysql_enable (bool): Set to "NO" by default. | |||||
# Set it to "YES" to enable MySQL. | |||||
# mysql_limits (bool): Set to "NO" by default. | |||||
# Set it to yes to run `limits -e -U mysql` | |||||
# just before mysql starts. | |||||
# mysql_dbdir (str): Default to "/var/db/mysql" | |||||
# Base database directory. | |||||
# mysql_optfile (str): Server-specific option file. | |||||
# Default to "${mysql_dbdir}/my.cnf". | |||||
# mysql_pidfile (str): Custum PID file path and name. | |||||
# Default to "${mysql_dbdir}/${hostname}.pid". | |||||
# mysql_args (str): Custom additional arguments to be passed | |||||
# to mysqld_safe (default empty). | |||||
# | |||||
. /etc/rc.subr | |||||
name="mysql" | |||||
rcvar=mysql_enable | |||||
load_rc_config $name | |||||
: ${mysql_enable="NO"} | |||||
: ${mysql_limits="NO"} | |||||
: ${mysql_dbdir="/var/db/mysql"} | |||||
: ${mysql_optfile="${mysql_dbdir}/my.cnf"} | |||||
mysql_user="mysql" | |||||
mysql_limits_args="-e -U ${mysql_user}" | |||||
: ${hostname:=`/bin/hostname`} | |||||
pidfile=${mysql_pidfile:-"${mysql_dbdir}/${hostname}.pid"} | |||||
command="/usr/sbin/daemon" | |||||
command_args="-c -f %%PREFIX%%/bin/mysqld_safe --defaults-extra-file=${mysql_optfile} --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args}" | |||||
procname="%%PREFIX%%/libexec/mysqld" | |||||
start_precmd="${name}_prestart" | |||||
start_postcmd="${name}_poststart" | |||||
mysql_install_db="%%PREFIX%%/bin/mysql_install_db" | |||||
mysql_install_db_args="--basedir=%%PREFIX%% --defaults-extra-file=${mysql_optfile} --datadir=${mysql_dbdir} --force" | |||||
service_startup_timeout=900 | |||||
startup_sleep=1 | |||||
sst_progress_file=${mysql_dbdir}/sst_in_progress | |||||
extra_commands="bootstrap" | |||||
bootstrap_cmd="mysql_bootstrap" | |||||
mysql_bootstrap() | |||||
{ | |||||
# Bootstrap the cluster, start the first node that initiate the cluster | |||||
check_startmsgs && echo "Bootstrapping cluster" | |||||
shift | |||||
command_args="$command_args --wsrep-new-cluster" | |||||
run_rc_command ${_rc_prefix}start | |||||
} | |||||
mysql_create_auth_tables() | |||||
{ | |||||
eval $mysql_install_db $mysql_install_db_args >/dev/null 2>/dev/null | |||||
[ $? -eq 0 ] && chown -R ${mysql_user}:${mysql_user} ${mysql_dbdir} | |||||
} | |||||
mysql_prestart() | |||||
{ | |||||
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}` 2>/dev/null | |||||
else | |||||
return 0 | |||||
fi | |||||
} | |||||
mysql_poststart() | |||||
{ | |||||
local timeout=${service_startup_timeout} | |||||
while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do | |||||
if test -e $sst_progress_file && [ $startup_sleep -ne 100 ]; then | |||||
check_startmsgs && echo "SST in progress, setting sleep higher" | |||||
startup_sleep=100 | |||||
fi | |||||
timeout=$(( timeout - 1 )) | |||||
sleep $startup_sleep | |||||
done | |||||
return 0 | |||||
} | |||||
run_rc_command "$1" |