Mysql
 sql >> Database >  >> RDS >> Mysql

Gli script MySQL in docker-entrypoint-initdb non vengono eseguiti

Dovresti cancellare data_volume prima di eseguire il contenitore e verranno eseguiti i file sql. Questo volume data_volume può essere rimosso usando il comando:docker volume rm data_volume .

La causa principale del tuo problema può essere trovata in docker-entrypoint.sh . Quando esegui un contenitore mysql, controlla la directory mysql /var/lib/mysql esiste o meno. Se la directory non esiste (eseguila per la prima volta), eseguirà i tuoi file 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 

Puoi ottenere maggiori dettagli su Fonte Dockerfile