Skip to content

Commit dae4ebf

Browse files
committed
Update mysql-setup-preparation.sh
now MYSQL_ or MARIADB_ ENVs can be used...
1 parent ccbd0f5 commit dae4ebf

File tree

1 file changed

+36
-25
lines changed

1 file changed

+36
-25
lines changed

conf/mysql-setup-preparation.sh

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,59 +3,70 @@
33
: "${MYSQL_SETUP_ENABLED:="0"}" # set to 1 to enable
44
: "${MYSQL_HOST:=""}" # set Host of MySQL/MariaDB Server
55
: "${MYSQL_PORT:="3306"}" # set Port of MySQL/MariaDB Server
6-
: "${MYSQL_ROOT_PASSWORD:=""}" # set MySQL Root Password
6+
: "${MYSQL_ROOT_PASSWORD:=""}" # set MySQL/MariaDB Root Password
77
: "${MYSQL_DATABASE:=""}" # set Databasename for User
88
: "${MYSQL_USER:=""}" # set Username
99
: "${MYSQL_PASSWORD:=""}" # set Password for User
1010
: "${MYSQL_EXPORTER_USER:="exporter"}" # set Exporter-Username, default: exporter
1111
: "${MYSQL_EXPORTER_PASSWORD:=""}" # set Password for Exporter-Username
1212
: "${MYSQL_EXPORTER_MAXUSERCONNECTIONS:="0"}" # max connection, set to 0 for unlimited, recommended: 3
1313

14+
: "${MARIADB_SETUP_ENABLED:="$MYSQL_SETUP_ENABLED"}"
15+
: "${MARIADB_HOST:="$MYSQL_HOST"}"
16+
: "${MARIADB_PORT:="$MYSQL_PORT"}"
17+
: "${MARIADB_ROOT_PASSWORD:="$MYSQL_ROOT_PASSWORD"}"
18+
: "${MARIADB_DATABASE:="$MYSQL_DATABASE"}"
19+
: "${MARIADB_USER:="$MYSQL_USER"}"
20+
: "${MARIADB_PASSWORD:="$MYSQL_PASSWORD"}"
21+
: "${MARIADB_EXPORTER_USER:="$MYSQL_EXPORTER_USER"}"
22+
: "${MARIADB_EXPORTER_PASSWORD:="$MYSQL_EXPORTER_PASSWORD"}"
23+
: "${MARIADB_EXPORTER_MAXUSERCONNECTIONS:="$MYSQL_EXPORTER_MAXUSERCONNECTIONS"}"
24+
1425
host='%' # set '%' to allow from all host
1526
options='--skip-ssl-verify-server-cert'
1627

17-
if [ "$MYSQL_SETUP_ENABLED" -eq "1" -a -n "$MYSQL_HOST" -a -n "$MYSQL_PORT" -a -n "$MYSQL_ROOT_PASSWORD" ]; then
18-
echo ">> MySQL Setup preparation on Host ${MYSQL_HOST} and Port ${MYSQL_PORT} ..."
28+
if [ "$MARIADB_SETUP_ENABLED" -eq "1" -a -n "$MARIADB_HOST" -a -n "$MARIADB_PORT" -a -n "$MARIADB_ROOT_PASSWORD" ]; then
29+
echo ">> MySQL Setup preparation on Host ${MARIADB_HOST} and Port ${MARIADB_PORT} ..."
1930

2031
echo ">> MySQL waiting for Server ..."
21-
until mariadb-admin ping -h ${MYSQL_HOST} -P ${MYSQL_PORT} -u root --password="${MYSQL_ROOT_PASSWORD}" ${options} --skip-verbose --silent >/dev/null 2>&1; do
32+
until mariadb-admin ping -h ${MARIADB_HOST} -P ${MARIADB_PORT} -u root --password="${MARIADB_ROOT_PASSWORD}" ${options} --skip-verbose --silent >/dev/null 2>&1; do
2233
sleep 2
2334
done
2435
echo ">> MySQL Server ready ..."
2536

2637
# User
27-
if [ -n "$MYSQL_USER" -a -n "$MYSQL_PASSWORD" -a -n "$MYSQL_DATABASE" ]; then
28-
echo ">> MySQL Database (${MYSQL_DATABASE}) and User (${MYSQL_USER}) ..."
29-
mariadb -h ${MYSQL_HOST} -P ${MYSQL_PORT} -u root --password="${MYSQL_ROOT_PASSWORD}" ${options} -sNe \
30-
"SELECT user FROM mysql.user WHERE user = '${MYSQL_USER}' GROUP BY user;" \
31-
| grep -q ${MYSQL_USER} \
32-
|| mariadb -h ${MYSQL_HOST} -P ${MYSQL_PORT} -u root --password="${MYSQL_ROOT_PASSWORD}" ${options} -sN <<EOSQL
33-
CREATE DATABASE IF NOT EXISTS ${MYSQL_DATABASE};
34-
CREATE USER IF NOT EXISTS '${MYSQL_USER}'@'${host}' IDENTIFIED BY '${MYSQL_PASSWORD}';
35-
GRANT ALL PRIVILEGES ON ${MYSQL_DATABASE}.* TO '${MYSQL_USER}'@'${host}';
38+
if [ -n "$MARIADB_USER" -a -n "$MARIADB_PASSWORD" -a -n "$MARIADB_DATABASE" ]; then
39+
echo ">> MySQL Database (${MARIADB_DATABASE}) and User (${MARIADB_USER}) ..."
40+
mariadb -h ${MARIADB_HOST} -P ${MARIADB_PORT} -u root --password="${MARIADB_ROOT_PASSWORD}" ${options} -sNe \
41+
"SELECT user FROM mysql.user WHERE user = '${MARIADB_USER}' GROUP BY user;" \
42+
| grep -q ${MARIADB_USER} \
43+
|| mariadb -h ${MARIADB_HOST} -P ${MARIADB_PORT} -u root --password="${MARIADB_ROOT_PASSWORD}" ${options} -sN <<EOSQL
44+
CREATE DATABASE IF NOT EXISTS ${MARIADB_DATABASE};
45+
CREATE USER IF NOT EXISTS '${MARIADB_USER}'@'${host}' IDENTIFIED BY '${MARIADB_PASSWORD}';
46+
GRANT ALL PRIVILEGES ON ${MARIADB_DATABASE}.* TO '${MARIADB_USER}'@'${host}';
3647
FLUSH PRIVILEGES;
3748
EOSQL
3849
else
39-
echo ">> MySQL Database (${MYSQL_DATABASE}) and User (${MYSQL_USER}) skipped."
50+
echo ">> MySQL Database (${MARIADB_DATABASE}) and User (${MARIADB_USER}) skipped."
4051
fi
4152

4253
# Exporter
43-
if [ -n "$MYSQL_EXPORTER_USER" -a -n "$MYSQL_EXPORTER_PASSWORD" -a -n "$MYSQL_EXPORTER_MAXUSERCONNECTIONS" ]; then
44-
echo ">> MySQL Exporter-User (${MYSQL_EXPORTER_USER}) ..."
45-
mariadb -h ${MYSQL_HOST} -P ${MYSQL_PORT} -u root --password="${MYSQL_ROOT_PASSWORD}" ${options} -sNe \
46-
"SELECT user FROM mysql.user WHERE user = '${MYSQL_EXPORTER_USER}' GROUP BY user;" \
47-
| grep -q ${MYSQL_EXPORTER_USER} \
48-
|| mariadb -h ${MYSQL_HOST} -P ${MYSQL_PORT} -u root --password="${MYSQL_ROOT_PASSWORD}" ${options} -sN <<EOSQL
49-
CREATE USER IF NOT EXISTS '${MYSQL_EXPORTER_USER}'@'${host}' IDENTIFIED BY '${MYSQL_EXPORTER_PASSWORD}' WITH MAX_USER_CONNECTIONS ${MYSQL_EXPORTER_MAXUSERCONNECTIONS};
50-
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO '${MYSQL_EXPORTER_USER}'@'${host}';
54+
if [ -n "$MARIADB_EXPORTER_USER" -a -n "$MARIADB_EXPORTER_PASSWORD" -a -n "$MARIADB_EXPORTER_MAXUSERCONNECTIONS" ]; then
55+
echo ">> MySQL Exporter-User (${MARIADB_EXPORTER_USER}) ..."
56+
mariadb -h ${MARIADB_HOST} -P ${MARIADB_PORT} -u root --password="${MARIADB_ROOT_PASSWORD}" ${options} -sNe \
57+
"SELECT user FROM mysql.user WHERE user = '${MARIADB_EXPORTER_USER}' GROUP BY user;" \
58+
| grep -q ${MARIADB_EXPORTER_USER} \
59+
|| mariadb -h ${MARIADB_HOST} -P ${MARIADB_PORT} -u root --password="${MARIADB_ROOT_PASSWORD}" ${options} -sN <<EOSQL
60+
CREATE USER IF NOT EXISTS '${MARIADB_EXPORTER_USER}'@'${host}' IDENTIFIED BY '${MARIADB_EXPORTER_PASSWORD}' WITH MAX_USER_CONNECTIONS ${MARIADB_EXPORTER_MAXUSERCONNECTIONS};
61+
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO '${MARIADB_EXPORTER_USER}'@'${host}';
5162
FLUSH PRIVILEGES;
5263
EOSQL
5364
else
54-
echo ">> MySQL Exporter-User (${MYSQL_EXPORTER_USER}) skipped."
65+
echo ">> MySQL Exporter-User (${MARIADB_EXPORTER_USER}) skipped."
5566
fi
5667

5768
# checks
5869
echo ">> MySQL checks:"
59-
mariadb -h ${MYSQL_HOST} -P ${MYSQL_PORT} -u root --password="${MYSQL_ROOT_PASSWORD}" ${options} -e 'SELECT user, host, max_user_connections FROM mysql.user;'
60-
mariadb -h ${MYSQL_HOST} -P ${MYSQL_PORT} -u root --password="${MYSQL_ROOT_PASSWORD}" ${options} -e 'SELECT host, user, db FROM mysql.db;'
70+
mariadb -h ${MARIADB_HOST} -P ${MARIADB_PORT} -u root --password="${MARIADB_ROOT_PASSWORD}" ${options} -e 'SELECT user, host, max_user_connections FROM mysql.user;'
71+
mariadb -h ${MARIADB_HOST} -P ${MARIADB_PORT} -u root --password="${MARIADB_ROOT_PASSWORD}" ${options} -e 'SELECT host, user, db FROM mysql.db;'
6172
fi

0 commit comments

Comments
 (0)