#!/bin/bash set -e set -o pipefail [ -f .env ] && . .env BUNDLE_DIR="${INFRA_LOGS_PATH}/${INFRA_ID}/proxysql" sudo mkdir -p "${BUNDLE_DIR}" sudo chmod 777 "${BUNDLE_DIR}" DB_BUNDLE="${BUNDLE_DIR}/dbservers-cert-bundle.pem" CA_BUNDLE="${BUNDLE_DIR}/caservers-cert-bundle.pem" sudo rm -f "${DB_BUNDLE}" "${CA_BUNDLE}" for i in 1 2 3; do SERVICE="mysql$i" CONTAINER="${COMPOSE_PROJECT}-${SERVICE}-1" echo -n "Waiting for container '${CONTAINER}' ..." MAX_WAIT=120 COUNT=0 PASS_OPT="" MAX_WAIT=120 COUNT=0 while true; do if [ $COUNT -ge $MAX_WAIT ]; then echo " TIMEOUT"; docker logs "${CONTAINER}" | tail -n 20; exit 1; fi STATE=$(docker inspect -f '{{.State.Running}}' "${CONTAINER}" 2>/dev/null || echo "false") if [ "${STATE}" != "true" ]; then echo -e "\nERROR: Container ${CONTAINER} is NOT running!"; docker logs "${CONTAINER}" | tail -n 20; exit 1; fi if docker exec "${CONTAINER}" mysql -h127.0.0.1 -uroot -p"${ROOT_PASSWORD}" -e "SELECT 1" >/dev/null 2>&1; then PASS_OPT="-p${ROOT_PASSWORD}"; echo " OK (Auth: Dynamic)."; break; fi if docker exec "${CONTAINER}" mysql -h127.0.0.1 -uroot -e "SELECT 1" >/dev/null 2>&1; then PASS_OPT=""; echo " OK (Auth: Empty)."; break; fi echo -n "."; sleep 2; COUNT=$((COUNT+2)) done echo "Configuring users on ${CONTAINER}..." docker exec -i "${CONTAINER}" mysql -h127.0.0.1 -uroot ${PASS_OPT} < /dev/null; else echo ">>> CA not found on ${CONTAINER}. Skipping collection."; fi done [ -f "${DB_BUNDLE}" ] && sudo chmod 666 "${DB_BUNDLE}" "${CA_BUNDLE}" || true