Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 19 additions & 13 deletions mariadb/centos7/docker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ if [ "$1" = 'mysqld_safe' ]; then
DATADIR="/var/lib/mysql"

if [ ! -d "$DATADIR/mysql" ]; then
if [ -z "$MYSQL_ROOT_PASSWORD" -a -z "$MYSQL_ALLOW_EMPTY_PASSWORD" ]; then
echo >&2 'error: database is uninitialized and MYSQL_ROOT_PASSWORD not set'
if [ -z "$MYSQL_ROOT_PASSWORD" -a -z "$MYSQL_ALLOW_EMPTY_PASSWORD" -a -z "$MARIADB_ROOT_PASSWORD" -a -z "$MARIADB_ALLOW_EMPTY_PASSWORD" ]; then
echo >&2 'error: database is uninitialized and MYSQL_ROOT_PASSWORD/MARIADB_ROOT_PASSWORD not set'
echo >&2 ' Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?'
exit 1
fi
Expand All @@ -24,29 +24,35 @@ if [ "$1" = 'mysqld_safe' ]; then
# TODO proper SQL escaping on ALL the things D:

tempSqlFile='/tmp/mysql-first-time.sql'
ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:=${MARIADB_ROOT_PASSWORD}}
cat > "$tempSqlFile" <<-EOSQL
DELETE FROM mysql.user ;
CREATE USER 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' ;
CREATE USER 'root'@'%' IDENTIFIED BY '${ROOT_PASSWORD}' ;
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ;
DROP DATABASE IF EXISTS test ;
EOSQL

if [ "$MYSQL_DATABASE" ]; then
echo "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DATABASE\` ;" >> "$tempSqlFile"
if [ "$MYSQL_CHARSET" ]; then
echo "ALTER DATABASE \`$MYSQL_DATABASE\` CHARACTER SET \`$MYSQL_CHARSET\` ;" >> "$tempSqlFile"
DATABASE=${MYSQL_DATABASE:=${MARIADB_DATABASE}}
CHARSET=${MYSQL_CHARSET:=${MARIADB_CHARSET}}
COLLATION=${MYSQL_COLLATION:=${MARIADB_COLLATION}}
DB_USER=${MYSQL_USER:=${MARIADB_USER}}
DB_PASSWORD=${MYSQL_PASSWORD:=${MARIADB_PASSWORD}}
if [ "$DATABASE" ]; then
echo "CREATE DATABASE IF NOT EXISTS \`$DATABASE\` ;" >> "$tempSqlFile"
if [ "$CHARSET" ]; then
echo "ALTER DATABASE \`$DATABASE\` CHARACTER SET \`$CHARSET\` ;" >> "$tempSqlFile"
fi

if [ "$MYSQL_COLLATION" ]; then
echo "ALTER DATABASE \`$MYSQL_DATABASE\` COLLATE \`$MYSQL_COLLATION\` ;" >> "$tempSqlFile"
if [ "$COLLATION" ]; then
echo "ALTER DATABASE \`$DATABASE\` COLLATE \`$COLLATION\` ;" >> "$tempSqlFile"
fi
fi

if [ "$MYSQL_USER" -a "$MYSQL_PASSWORD" ]; then
echo "CREATE USER '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' ;" >> "$tempSqlFile"
if [ "$DB_USER" -a "$DB_PASSWORD" ]; then
echo "CREATE USER '$DB_USER'@'%' IDENTIFIED BY '$DB_PASSWORD' ;" >> "$tempSqlFile"

if [ "$MYSQL_DATABASE" ]; then
echo "GRANT ALL ON \`$MYSQL_DATABASE\`.* TO '$MYSQL_USER'@'%' ;" >> "$tempSqlFile"
if [ "$DATABASE" ]; then
echo "GRANT ALL ON \`$DATABASE\`.* TO '$DB_USER'@'%' ;" >> "$tempSqlFile"
fi
fi

Expand Down