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

Hvorfor udføres mit docker-entrypoint-initdb.d-script (som specificeret i docker-compose.yml) ikke for at initialisere en ny MySQL-instans?

Djævelen gemmer sig i detaljer...

Du har en dobbelt definition af root i din env vars. root bruger oprettes som standard med adgangskode fra MYSQL_ROOT_PASSWORD . Du beder derefter om at oprette en anden "normal" bruger... med nøjagtig samme navn og adgangskode (dvs. med MYSQL_USER og MYSQL_PASSWORD )

Hvis du ser grundigt på din opstartslog, vil du se en fejl

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

Dette stopper faktisk yderligere behandling af dine init-filer i docker-entrypoint-initdb.d og fortsætter med resten af ​​billedstartprocessen (dvs. genstart af mysql efter initialisering på midlertidig server).

Du skal blot slippe MYSQL_USER og MYSQL_PASSWORD i din env vars, eller indstil en anden bruger end root og du vil straks se dine init-filer behandlet (glem ikke at tømme din data-dir igen).




  1. Sådan tjekker du ind i MySQL, hvis en dato i en række datoer falder mellem datoer i en tabel

  2. Duplikering, der involverer SUM, LEFT JOIN og GROUP BY

  3. Sletningsrækkefølge med fremmednøglebegrænsninger,

  4. R RPostgreSQL Opret forbindelse til Remote Postgres-database med SSL