Files
nix/packages/docker/mysql/entrypoint.sh
Nikolaos Karaolidis 15bf209e8c Refactor secrets
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-07-24 11:01:47 +01:00

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 $?