Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Skrypty MySQL w docker-entrypoint-initdb nie są wykonywane

Powinieneś wyczyścić data_volume przed uruchomieniem kontenera, a pliki sql zostaną wykonane. Ten wolumin data_volume można usunąć za pomocą polecenia:docker volume rm data_volume .

Przyczynę problemu można znaleźć w docker-entrypoint.sh . Kiedy uruchamiasz kontener mysql, sprawdza on katalog mysql /var/lib/mysql istnieje czy nie. Jeśli katalog nie istnieje (uruchom go za pierwszym razem), uruchomi twoje pliki 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 

Więcej informacji znajdziesz na źródło pliku Docker



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie znaleziono dostawcy Entity Framework dla dostawcy ADO.NET "MySql.Data.MySqlClient"

  2. Jak zrobić tabelę mysql z kolumnami daty i czasu?

  3. Klejnot MySQL2 Ruby nie zainstaluje 10.6

  4. usuwanie encji kaskadowo nie działających w relacji ManyToMany

  5. MYSQL, jeśli zapytanie wybierające zwraca 0 wierszy, a następnie inne zapytanie wybierające?