sql >> Databasteknik >  >> RDS >> Mysql

Varför körs inte mitt docker-entrypoint-initdb.d-skript (som specificerat i docker-compose.yml) för att initiera en ny MySQL-instans?

Djävulen gömmer sig i detaljer...

Du har en dubbel definition av root i din env vars. root användaren skapas som standard med lösenord från MYSQL_ROOT_PASSWORD . Du ber sedan att skapa en andra "normal" användare... med exakt samma namn och lösenord (dvs. med MYSQL_USER och MYSQL_PASSWORD )

Om du tittar noga på din startlogg kommer du att se ett fel

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

Detta stoppar faktiskt ytterligare bearbetning av dina init-filer i docker-entrypoint-initdb.d och fortsätter med resten av bildstartprocessen (dvs. omstart av mysql efter initialisering på temporär server).

Släpp bara MYSQL_USER och MYSQL_PASSWORD i din env vars, eller ställ in en annan användare än root och du kommer omedelbart att se dina init-filer bearbetade (glöm inte att tömma din datakatalog igen).




  1. Välj topp 10 poster för varje kategori i MySQL

  2. MySQL:InnoDb:Semaphore wait har varat> 600 sekunder. Vi kraschar avsiktligt servern

  3. Hur man räknar ut storleken på index i MySQL

  4. Hur man infogar rader i SQL Server Table genom att redigera tabellrader GUI - SQL Server / TSQL Tutorial Del 101