forked from metal3-io/ironic-image
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrunmariadb.sh
executable file
·53 lines (45 loc) · 1.83 KB
/
runmariadb.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/bash
PATH=$PATH:/usr/sbin/
DATADIR="/var/lib/mysql"
MARIADB_PASSWORD=${MARIADB_PASSWORD:-"change_me"}
MARIADB_CONF_FILE="/etc/my.cnf.d/mariadb-server.cnf"
MARIADB_CERT_FILE=/certs/mariadb/tls.crt
MARIADB_KEY_FILE=/certs/mariadb/tls.key
mkdir -p $(dirname ${MARIADB_CERT_FILE})
if [ -f "$MARIADB_CERT_FILE" ] && [ ! -f "$MARIADB_KEY_FILE" ] ; then
echo "Missing TLS private key file ${MARIADB_KEY_FILE}"
exit 1
fi
if [ ! -f "$MARIADB_CERT_FILE" ] && [ -f "$MARIADB_KEY_FILE" ] ; then
echo "Missing TLS Certificate file ${MARIADB_CERT_FILE}"
exit 1
fi
ln -sf /proc/self/fd/1 /var/log/mariadb/mariadb.log
if [ ! -d "${DATADIR}/mysql" ]; then
crudini --set "$MARIADB_CONF_FILE" mysqld max_connections 64
crudini --set "$MARIADB_CONF_FILE" mysqld max_heap_table_size 1M
crudini --set "$MARIADB_CONF_FILE" mysqld innodb_buffer_pool_size 5M
crudini --set "$MARIADB_CONF_FILE" mysqld innodb_log_buffer_size 512K
# Config MariaDB to enable TLS
if [ -f "$MARIADB_CERT_FILE" ]
then
crudini --set "$MARIADB_CONF_FILE" mariadb-10.3 ssl on
crudini --set "$MARIADB_CONF_FILE" mariadb-10.3 ssl_cert "${MARIADB_CERT_FILE}"
crudini --set "$MARIADB_CONF_FILE" mariadb-10.3 ssl_key "${MARIADB_KEY_FILE}"
fi
mysql_install_db --datadir="$DATADIR"
chown -R mysql "$DATADIR"
cat > /tmp/configure-mysql.sql <<-EOSQL
DELETE FROM mysql.user ;
CREATE USER 'ironic'@'localhost' identified by '${MARIADB_PASSWORD}' ;
GRANT ALL on *.* TO 'ironic'@'localhost' WITH GRANT OPTION ;
DROP DATABASE IF EXISTS test ;
CREATE DATABASE IF NOT EXISTS ironic ;
FLUSH PRIVILEGES ;
EOSQL
# mysqld_safe closes stdout/stderr if no bash options are set ($- == '')
# turn on tracing to prevent this
exec bash -x /usr/bin/mysqld_safe --init-file /tmp/configure-mysql.sql
else
exec bash -x /usr/bin/mysqld_safe
fi