|
|
@ -1,19 +1,22 @@ |
|
|
|
#!/bin/sh /etc/rc.common |
|
|
|
# Copyright (C) 2010-2018 OpenWrt.org |
|
|
|
|
|
|
|
# shellcheck disable=SC2034 |
|
|
|
START=95 |
|
|
|
# shellcheck disable=SC2034 |
|
|
|
STOP=10 |
|
|
|
|
|
|
|
NAME=mysqld |
|
|
|
|
|
|
|
LOGGER="/usr/bin/logger -p user.err -s -t $NAME --" |
|
|
|
[ -x "$LOGGER" ] || LOGGER="echo" |
|
|
|
|
|
|
|
MYSQLADMIN=/usr/bin/mysqladmin |
|
|
|
MYSQLD=/usr/bin/$NAME |
|
|
|
MYSQLDSAFE=/usr/bin/mysqld_safe |
|
|
|
MYSQLADMIN="/usr/bin/mysqladmin" |
|
|
|
MYSQLD="/usr/bin/$NAME" |
|
|
|
MYSQLDSAFE="/usr/bin/mysqld_safe" |
|
|
|
|
|
|
|
# mysqladmin likes to read /root/.my.cnf which could cause issues. |
|
|
|
export HOME=/etc/mysql |
|
|
|
export HOME="/etc/mysql" |
|
|
|
|
|
|
|
# Safeguard (relative paths, core dumps...) |
|
|
|
cd / |
|
|
@ -40,8 +43,8 @@ mysqld_status() { |
|
|
|
fi |
|
|
|
|
|
|
|
ps_alive=0 |
|
|
|
pidfile=$(mysqld_get_param pid-file) |
|
|
|
if [ -f "$pidfile" ] && kill -0 $(cat "$pidfile") >/dev/null 2>&1; then |
|
|
|
pidfile="$(mysqld_get_param pid-file)" |
|
|
|
if [ -f "$pidfile" ] && kill -0 "$(cat "$pidfile")" >/dev/null 2>&1; then |
|
|
|
ps_alive=1 |
|
|
|
fi |
|
|
|
|
|
|
@ -62,85 +65,87 @@ start() { |
|
|
|
|
|
|
|
hint="please fix your server configuration in /etc/mysql/" |
|
|
|
|
|
|
|
for i in $MYSQLD $MYSQLADMIN $MYSQLDSAFE; do |
|
|
|
if [ ! -x $i ]; then |
|
|
|
$LOGGER $i is missing |
|
|
|
for i in "$MYSQLD" "$MYSQLADMIN" "$MYSQLDSAFE"; do |
|
|
|
if [ ! -x "$i" ]; then |
|
|
|
$LOGGER "$i is missing" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
done |
|
|
|
|
|
|
|
if [ ! -r $conf ]; then |
|
|
|
$LOGGER $conf cannot be read |
|
|
|
if [ ! -r "$conf" ]; then |
|
|
|
$LOGGER "$conf cannot be read" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
config_load $NAME |
|
|
|
config_load "$NAME" |
|
|
|
|
|
|
|
config_get_bool enabled general enabled 0 |
|
|
|
if [ $enabled -eq 0 ]; then |
|
|
|
$LOGGER service not enabled in /etc/config/$NAME |
|
|
|
# shellcheck disable=SC2154 |
|
|
|
if [ "$enabled" -eq 0 ]; then |
|
|
|
$LOGGER "service not enabled in /etc/config/$NAME" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
config_get options general options |
|
|
|
|
|
|
|
datadir=$(mysqld_get_param datadir) |
|
|
|
tmpdir=$(mysqld_get_param tmpdir) |
|
|
|
datadir="$(mysqld_get_param datadir)" |
|
|
|
tmpdir="$(mysqld_get_param tmpdir)" |
|
|
|
|
|
|
|
if [ -z "$datadir" ]; then |
|
|
|
$LOGGER datadir is not set |
|
|
|
$LOGGER $hint |
|
|
|
$LOGGER "datadir is not set" |
|
|
|
$LOGGER "$hint" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
if [ -z "$tmpdir" ]; then |
|
|
|
$LOGGER tmpdir is not set |
|
|
|
$LOGGER $hint |
|
|
|
$LOGGER "tmpdir is not set" |
|
|
|
$LOGGER "$hint" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
if [ ! -f "$datadir/mysql/tables_priv.MAD" ]; then |
|
|
|
args="--force" |
|
|
|
basedir=$(mysqld_get_param basedir) |
|
|
|
basedir="$(mysqld_get_param basedir)" |
|
|
|
[ -n "$basedir" ] && args="$args --basedir=$basedir" |
|
|
|
|
|
|
|
$LOGGER Cannot detect privileges table. You might need to run |
|
|
|
$LOGGER \'mysql_install_db "$args"\' |
|
|
|
$LOGGER to initialize the system tables. |
|
|
|
$LOGGER "Cannot detect privileges table. You might need to run" |
|
|
|
$LOGGER "'mysql_install_db \"$args\"'" |
|
|
|
$LOGGER "to initialize the system tables." |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
# Start daemon |
|
|
|
if mysqld_status check_alive; then |
|
|
|
$LOGGER already running |
|
|
|
$LOGGER "server is already running" |
|
|
|
else |
|
|
|
for i in $logdir $rundir; do |
|
|
|
for i in "$logdir" "$rundir"; do |
|
|
|
opts="-m 0750" |
|
|
|
if ! [ -e $i ]; then |
|
|
|
if ! [ -e "$i" ]; then |
|
|
|
# $rundir needs to be accessible for |
|
|
|
# clients |
|
|
|
if [ $i = $rundir ]; then |
|
|
|
if [ "$i" = "$rundir" ]; then |
|
|
|
opts= |
|
|
|
fi |
|
|
|
mkdir -p $opts $i |
|
|
|
[ -d $i ] && chown mariadb:mariadb $i |
|
|
|
# shellcheck disable=SC2086 |
|
|
|
mkdir -p $opts "$i" |
|
|
|
[ -d "$i" ] && chown mariadb:mariadb "$i" |
|
|
|
fi |
|
|
|
done |
|
|
|
|
|
|
|
$MYSQLDSAFE $options >/dev/null 2>&1 & |
|
|
|
# shellcheck disable=SC2154,SC2086 |
|
|
|
"$MYSQLDSAFE" $options >/dev/null 2>&1 & |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
stop() { |
|
|
|
if ! mysqld_status check_dead; then |
|
|
|
$MYSQLADMIN shutdown |
|
|
|
"$MYSQLADMIN" shutdown |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
reload() { |
|
|
|
if mysqld_status check_alive; then |
|
|
|
$MYSQLADMIN reload |
|
|
|
"$MYSQLADMIN" reload |
|
|
|
else |
|
|
|
$LOGGER not running |
|
|
|
$LOGGER "server is not running" |
|
|
|
fi |
|
|
|
} |