sql >> Database >  >> RDS >> Mysql

MySQL-scripts in docker-entrypoint-initdb worden niet uitgevoerd

U moet data_volume wissen voordat u de container uitvoert, worden de sql-bestanden uitgevoerd. Dit volume data_volume kan worden verwijderd met het commando:docker volume rm data_volume .

De hoofdoorzaak van uw probleem kan worden gevonden in docker-entrypoint.sh . Wanneer u een mysql-container uitvoert, controleert deze de mysql-directory /var/lib/mysql bestaat of niet. Als de map niet bestaat (voer het de eerste keer uit), zal het uw SQL-bestanden uitvoeren.

    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 

U kunt meer details vinden op Dockerfile-bron



  1. Kan een tabelveld een koppelteken bevatten?

  2. Wat is er nieuw in PostgreSQL 12

  3. wat is beter één grote zoekopdracht of meerdere kleine zoekopdrachten?

  4. Instellingen voor MySql-querycache