msg_stopping "MySQL $clusterdir"
busy
-# TODO
-# graceful mysql shutdown with mysqladmin shutdown requires 'shutdown'
-# privilege. create new user mysqlctl or rename mysql_logrotate to mysqlctl
-# and give it both privs (flush-logs and shutdown)?
-
# try graceful shutdown -- send shutdown command
+ # requires mysql_logrotate user proper privs
/usr/bin/mysqladmin --defaults-file=$MYSQL_CONFIG ${MYSQL_SOCKET:+--socket=$MYSQL_SOCKET} shutdown >/dev/null 2>&1
mysqlstatus "$clusterdir"
[ "$MYSQL_PID" != "unknown" ] && kill -TERM "$MYSQL_PID" 2> /dev/null
- # 3 seconds
- for nr in 1 2 3; do
+ # 15 seconds
+ for nr in $(seq 1 15); do
[ -d "/proc/$MYSQL_PID" ] && sleep 1
done
mysqlstatus "$clusterdir"
flush-logs)
for mysqldir in $DB_CLUSTERS; do
mysqlgetconfig "$mysqldir"
- /usr/bin/mysqladmin --defaults-file="$MYSQL_CONFIG" --socket="$MYSQL_SOCKET" flush-logs
+ # just if mysqld is really running
+ if /usr/bin/mysqladmin --defaults-file="$MYSQL_CONFIG" --socket="$MYSQL_SOCKET" ping >/dev/null 2>&1; then
+ /usr/bin/mysqladmin --defaults-file="$MYSQL_CONFIG" --socket="$MYSQL_SOCKET" flush-logs
+ fi
done
;;
*)