diff --git a/utils/mysql/files/mysqld.init b/utils/mysql/files/mysqld.init index eec96c0854..98c8c65c40 100644 --- a/utils/mysql/files/mysqld.init +++ b/utils/mysql/files/mysqld.init @@ -7,24 +7,26 @@ STOP=10 SERVICE_DAEMONIZE=1 SERVICE_WRITE_PID=1 SERVICE_STOP_TIME=9 - -error() { - echo "${initscript}:" "$@" 1>&2 -} +PROG='/usr/bin/mysqld' start() { - local datadir=$(sed -n -e "s/^[[:space:]]*datadir[[:space:]]*=[[:space:]\"']*\([^[:space:]\"']*\)[[:space:]\"']*/\1/p" /etc/my.cnf) - if [ ! -d "$datadir" ]; then - error "Error: datadir '$datadir' in /etc/my.cnf doesn't exist" + local conf='/etc/my.cnf' + local datadir="$( sed -nE "s/^\s*datadir\s*=\s*('([^']*)'|\x22([^\x22]*)\x22|(.*\S))\s*$/\2\3\4/p" "$conf" )" + + [ -d "$datadir" ] || { + logger -s "[ERROR] datadir '$datadir' in '$conf' does not exist" return 1 - fi - if [ ! -f "$datadir/mysql/tables_priv.MYD" ]; then - error "Error: I didn't detect a privileges table, you might need to run mysql_install_db --force to initialize the system tables" + } + + [ -f "$datadir/mysql/tables_priv.MYD" ] || { + logger -s "[ERROR] can not detect privileges table, you might need to" + logger -s "run 'mysql_install_db --force' to initialize the system tables" return 1 - fi - service_start /usr/bin/mysqld + } + + service_start "$PROG" } stop() { - service_stop /usr/bin/mysqld + service_stop "$PROG" }