25 lines
685 B
Bash
25 lines
685 B
Bash
#!/bin/bash
|
|
set -eo pipefail
|
|
|
|
if [ "$MYSQL_RANDOM_ROOT_PASSWORD" ] && [ -z "$MYSQL_USER" ] && [ -z "$MYSQL_PASSWORD" ]; then
|
|
# there's no way we can guess what the random MySQL password was
|
|
echo >&2 'healthcheck error: cannot determine random root password (and MYSQL_USER and MYSQL_PASSWORD were not set)'
|
|
exit 0
|
|
fi
|
|
|
|
host="$(hostname --ip-address || echo '127.0.0.1')"
|
|
user="${MYSQL_USER:-root}"
|
|
export MYSQL_PWD="${MYSQL_PASSWORD:-$MYSQL_ROOT_PASSWORD}"
|
|
|
|
args=(
|
|
# force mysql to not use the local "mysqld.sock" (test "external" connectibility)
|
|
-h"$host"
|
|
-u"$user"
|
|
--silent
|
|
)
|
|
|
|
if select="$(echo 'SELECT 1' | mysql "${args[@]}")" && [ "$select" = '1' ]; then
|
|
exit 0
|
|
fi
|
|
|
|
exit 1
|