Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Skripte in docker-entrypoint-initdb werden nicht ausgeführt

Sie sollten data_volume löschen vorher starte den container und die sql dateien werden ausgeführt. Dieses Volume data_volume kann mit folgendem Befehl entfernt werden:docker volume rm data_volume .

Die Ursache Ihres Problems finden Sie in docker-entrypoint.sh . Wenn Sie einen MySQL-Container ausführen, überprüft er das MySQL-Verzeichnis /var/lib/mysql existieren oder nicht. Wenn das Verzeichnis nicht existiert (führen Sie es beim ersten Mal aus), werden Ihre SQL-Dateien ausgeführt.

    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 

Weitere Informationen erhalten Sie unter Dockerfile-Quelle