#!/bin/sh set -eu : "${MYSQL_ROOT_PASSWORD:?MYSQL_ROOT_PASSWORD is required}" MYSQL_HOST="${MYSQL_HOST:-mysql}" MYSQL_PORT="${MYSQL_PORT:-3306}" MYSQL_DB="${MYSQL_DB:-nacos_config}" MYSQL_USER="${MYSQL_USER:-root}" export MYSQL_PWD="$MYSQL_ROOT_PASSWORD" mysql_exec() { mysql --default-character-set=utf8mb4 -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u"$MYSQL_USER" "$@" } echo "Preparing Nacos database ${MYSQL_DB}..." mysql_exec -e "CREATE DATABASE IF NOT EXISTS \`${MYSQL_DB}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" schema_exists="$(mysql_exec -N -s -e "SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA='${MYSQL_DB}' AND TABLE_NAME='config_info';" 2>/dev/null || echo 0)" if [ "${schema_exists}" -eq 0 ]; then echo "Initializing Nacos schema..." mysql_exec "$MYSQL_DB" < /init-sql/nacos-schema.sql else echo "Nacos schema already exists, skip schema import." fi if row_count="$(mysql_exec -N -s -e "SELECT COUNT(*) FROM \`${MYSQL_DB}\`.config_info;" 2>/dev/null)"; then : else row_count=0 fi if [ "${row_count}" -eq 0 ]; then echo "Seeding default Nacos configs..." mysql_exec "$MYSQL_DB" < /init-sql/nacos-config-init.sql else echo "Nacos config already exists, skip seeding." fi