40 lines
983 B
Bash
40 lines
983 B
Bash
#!/bin/sh
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
|
|
MYSQL_USER="${MYSQL_USER:-mariadb}"
|
|
MYSQL_PASSWORD="${MYSQL_PASSWORD:-mariadb}"
|
|
MYSQL_ROOT_PASSWORD="${MYSQL_ROOT_PASSWORD:-$MYSQL_PASSWORD}"
|
|
MYSQL_DB="${MYSQL_DB:-main}"
|
|
DATADIR="${DATADIR:-/var/lib/mysql}"
|
|
|
|
if [ ! -f "$DATADIR/mysql_upgrade_info" ]; then
|
|
mariadb-install-db --datadir="$DATADIR" --skip-test-db
|
|
|
|
mariadbd --user=root --datadir="$DATADIR" --skip-networking --skip-grant-tables &
|
|
PID="$!"
|
|
|
|
while ! mariadb --protocol=socket -e "
|
|
FLUSH PRIVILEGES;
|
|
|
|
ALTER USER 'root'@'localhost' IDENTIFIED BY '$MYSQL_ROOT_PASSWORD';
|
|
|
|
CREATE USER '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD';
|
|
GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' WITH GRANT OPTION;
|
|
|
|
CREATE DATABASE \`$MYSQL_DB\`;
|
|
"; do
|
|
sleep 0.1
|
|
done
|
|
|
|
kill -QUIT "$PID"
|
|
wait "$PID" || true
|
|
fi
|
|
|
|
trap 'kill -QUIT "$PID"' INT TERM
|
|
mariadbd --user=root --datadir="$DATADIR" "$@" &
|
|
PID=$!
|
|
wait "$PID"
|
|
exit $?
|