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

Dlaczego mój skrypt docker-entrypoint-initdb.d (określony w docker-compose.yml) nie jest wykonywany w celu zainicjowania nowego wystąpienia MySQL?

Diabeł chowa się w szczegółach...

Masz podwójną definicję root w twoich śr. root użytkownik jest domyślnie tworzony z hasłem z MYSQL_ROOT_PASSWORD . Następnie prosisz o utworzenie drugiego "normalnego" użytkownika... z dokładnie taką samą nazwą i hasłem (np. z MYSQL_USER i MYSQL_PASSWORD )

Jeśli przyjrzysz się uważnie dziennikowi uruchamiania, zobaczysz błąd

db_1       | ERROR 1396 (HY000) at line 1: Operation CREATE USER failed for 'root'@'%'

To faktycznie zatrzymuje dalsze przetwarzanie plików init w docker-entrypoint-initdb.d i kontynuuje resztę procesu uruchamiania obrazu (tj. restart mysql po inicjalizacji na serwerze tymczasowym).

Po prostu upuść MYSQL_USER i MYSQL_PASSWORD w swoich zmiennych środowiskowych lub ustaw innego użytkownika niż root i natychmiast zobaczysz przetworzone pliki startowe (nie zapomnij ponownie opróżnić katalogu danych).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Test wyrażenia regularnego MySql

  2. MySQL:Szybki podział typów złączeń

  3. sql dołączyć do dwóch stołów

  4. Zduplikowany wpis dla klucza podstawowego w MySQL

  5. błąd node-mysql:połącz ECONNREFUSED