sql >> Databasteknik >  >> RDS >> Mysql

MySQL-skript i docker-entrypoint-initdb körs inte

Du bör rensa data_volume innan kör behållaren och sql-filerna kommer att köras. Denna volym data_volume kan tas bort genom att använda kommandot:docker volume rm data_volume .

Grundorsaken till ditt problem kan hittas i docker-entrypoint.sh . När du kör en mysql-behållare kontrollerar den mysql-katalogen /var/lib/mysql existerar eller inte. Om katalogen inte finns (kör den första gången) kommer den att köra dina SQL-filer.

    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 

Du kan få mer information på Dockerfilkälla



  1. Välja distinkt 2 kolumnkombination i mysql

  2. Använda Working Folder till Source Control Database

  3. sql geografi till dbgeography?

  4. Hur man returnerar antalet sekunder efter midnatt i Oracle Database