sql >> Databáze >  >> RDS >> Mysql

Skripty MySQL v docker-entrypoint-initdb se nespouštějí

Měli byste vymazat data_volume před spuštěním kontejneru a budou spuštěny soubory SQL. Tento svazek data_volume lze odstranit pomocí příkazu:docker volume rm data_volume .

Hlavní příčinu vašeho problému lze nalézt v docker-entrypoint.sh . Když spustíte kontejner mysql, zkontroluje adresář mysql /var/lib/mysql existovat nebo ne. Pokud adresář neexistuje (spusťte jej poprvé), spustí vaše soubory SQL.

    if [ ! -d "$DATADIR/mysql" ]; then
        //Some other logic here

        for f in /docker-entrypoint-initdb.d/*; do
            case "$f" in
                *.sh)     echo "$0: running $f"; . "$f" ;;
                *.sql)    echo "$0: running $f"; "${mysql[@]}" < "$f"; echo ;;
                *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${mysql[@]}"; echo ;;
                *)        echo "$0: ignoring $f" ;;
            esac
            echo
        done 

Další podrobnosti můžete získat na zdroj souboru Docker



  1. Wordpress se nemůže připojit k serveru mysql

  2. Standardy / konvence pro názvy sloupců MySQL

  3. Výmluvné many-to-many-to-many - jak snadno načíst vzdálený vztah

  4. Ukládání objektů Python Pickled v databázi MySQL