Blame root-common/usr/share/container-scripts/mysql/pre-init/25-validate-replication-variables.sh

d27be39
function validate_replication_variables() {
d27be39
  if ! [[ -v MYSQL_DATABASE && -v MYSQL_MASTER_USER && -v MYSQL_MASTER_PASSWORD && \
d27be39
        ( "${MYSQL_RUNNING_AS_SLAVE:-0}" != "1" || -v MYSQL_MASTER_SERVICE_NAME ) ]]; then
d27be39
    echo
d27be39
    echo "For master/slave replication, you have to specify following environment variables:"
d27be39
    echo "  MYSQL_MASTER_SERVICE_NAME (slave only)"
d27be39
    echo "  MYSQL_DATABASE"
d27be39
    echo "  MYSQL_MASTER_USER"
d27be39
    echo "  MYSQL_MASTER_PASSWORD"
d27be39
    echo
d988f44
    return 1
d27be39
  fi
d27be39
  [[ "$MYSQL_DATABASE" =~ $mysql_identifier_regex ]] || usage "Invalid database name"
d27be39
  [[ "$MYSQL_MASTER_USER"     =~ $mysql_identifier_regex ]] || usage "Invalid MySQL master username"
d27be39
  [ ${#MYSQL_MASTER_USER} -le 16 ] || usage "MySQL master username too long (maximum 16 characters)"
d27be39
  [[ "$MYSQL_MASTER_PASSWORD" =~ $mysql_password_regex   ]] || usage "Invalid MySQL master password"
d27be39
}
d27be39
d988f44
if [ -v MYSQL_RUNNING_AS_MASTER ] || [ -v MYSQL_RUNNING_AS_SLAVE ] ; then
d988f44
  validate_replication_variables
d988f44
fi