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

MySQL-scripts i docker-entrypoint-initdb udføres ikke

Du bør rydde data_volume før du kører containeren, og sql-filerne vil blive udført. Denne volumen data_volume kan fjernes ved at bruge kommandoen:docker volume rm data_volume .

Grundårsagen til dit problem kan findes i docker-entrypoint.sh . Når du kører en mysql-container, tjekker den mysql-mappen /var/lib/mysql eksisterer eller ej. Hvis mappen ikke eksisterer (kør den første gang), vil den køre dine 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å flere detaljer på Dockerfile-kilde



  1. Brug af en NoSQL-database over MySQL

  2. Træk uger fra en dato i PostgreSQL

  3. FEJL i PDO:Kald til en medlemsfunktion prepare() på null

  4. MySQL-forespørgsel ved hjælp af CASE til at VÆLGE flere kolonner