40 lines
938 B
Bash
40 lines
938 B
Bash
#!/bin/sh
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
|
|
MYSQL_USER="${MYSQL_USER:-mysql}"
|
|
MYSQL_PASSWORD="${MYSQL_PASSWORD:-mysql}"
|
|
MYSQL_ROOT_PASSWORD="${MYSQL_ROOT_PASSWORD:-$MYSQL_PASSWORD}"
|
|
MYSQL_DB="${MYSQL_D:-main}"
|
|
DATADIR="${DATADIR:-/var/lib/mysql}"
|
|
|
|
if [ ! -f "$DATADIR/mysql_upgrade_history" ]; then
|
|
mysqld --initialize-insecure --datadir="$DATADIR"
|
|
|
|
mysqld --user=root --datadir="$DATADIR" --skip-networking --skip-grant-tables &
|
|
PID="$!"
|
|
|
|
while ! mysql --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'@'%' 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
|
|
mysqld --user=root --datadir="$DATADIR" "$@" &
|
|
PID=$!
|
|
wait "$PID"
|
|
exit $?
|