|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
#!/bin/bash
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
#
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
# This is an entrypoint that runs the MySQL server in the 'master' mode.
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
#
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
export_vars=$(cgroup-limits); export $export_vars
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
source ${CONTAINER_SCRIPTS_PATH}/common.sh
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
set -eu
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
export MYSQL_RUNNING_AS_MASTER=1
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
[ -f ${CONTAINER_SCRIPTS_PATH}/validate_replication_variables.sh ] && source ${CONTAINER_SCRIPTS_PATH}/validate_replication_variables.sh
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
[ -f ${CONTAINER_SCRIPTS_PATH}/validate_variables.sh ] && source ${CONTAINER_SCRIPTS_PATH}/validate_variables.sh
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
# The 'server-id' for master needs to be constant
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
export MYSQL_SERVER_ID=1
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
log_info "The 'master' server-id is ${MYSQL_SERVER_ID}"
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
# Process the MySQL configuration files
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
log_info 'Processing MySQL configuration files ...'
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
envsubst < ${CONTAINER_SCRIPTS_PATH}/my-base.cnf.template > /etc/my.cnf.d/base.cnf
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
envsubst < ${CONTAINER_SCRIPTS_PATH}/my-paas.cnf.template > /etc/my.cnf.d/paas.cnf
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
envsubst < ${CONTAINER_SCRIPTS_PATH}/my-master.cnf.template > /etc/my.cnf.d/master.cnf
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
envsubst < ${CONTAINER_SCRIPTS_PATH}/my-repl-gtid.cnf.template > /etc/my.cnf.d/repl-gtid.cnf
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
envsubst < ${CONTAINER_SCRIPTS_PATH}/my-tuning.cnf.template > /etc/my.cnf.d/tuning.cnf
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
if [ ! -d "$MYSQL_DATADIR/mysql" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
initialize_database "$@"
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
else
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
start_local_mysql "$@"
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
log_info 'Setting passwords ...'
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
[ -f ${CONTAINER_SCRIPTS_PATH}/passwd-change.sh ] && source ${CONTAINER_SCRIPTS_PATH}/passwd-change.sh
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
# Setup the 'master' replication on the MySQL server
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
mysql $mysql_flags <
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
GRANT REPLICATION SLAVE ON *.* TO '${MYSQL_MASTER_USER}'@'%' IDENTIFIED BY '${MYSQL_MASTER_PASSWORD}';
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
GRANT SELECT ON replication.* TO '${MYSQL_MASTER_USER}'@'%' IDENTIFIED BY '${MYSQL_MASTER_PASSWORD}';
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
FLUSH PRIVILEGES;
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
EOSQL
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
log_info 'Sourcing post-init.sh ...'
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
[ -f ${CONTAINER_SCRIPTS_PATH}/post-init.sh ] && source ${CONTAINER_SCRIPTS_PATH}/post-init.sh
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
# Restart the MySQL server with public IP bindings
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
shutdown_local_mysql
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
unset_env_vars
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
log_volume_info $MYSQL_DATADIR
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
log_info 'Running final exec -- Only MySQL server logs after this point'
|
|
![](https://seccdn.libravatar.org/avatar/3d0a4f295af5f9857ef04c3d8f6e89d5b4154c2463647b61e8e48ed700d065c7?s=16&d=retro) |
d27be39 |
exec ${MYSQL_PREFIX}/libexec/mysqld --defaults-file=$MYSQL_DEFAULTS_FILE "$@" 2>&1
|