sql >> Database >  >> RDS >> Mysql

Waarom wordt mijn docker-entrypoint-initdb.d-script (zoals gespecificeerd in docker-compose.yml) niet uitgevoerd om een ​​nieuwe MySQL-instantie te initialiseren?

Duivel verbergt zich in details...

Je hebt een dubbele definitie van root in uw env vars. root gebruiker wordt standaard aangemaakt met wachtwoord van MYSQL_ROOT_PASSWORD . U vraagt ​​dan om een ​​tweede "normale" gebruiker aan te maken... met exact dezelfde naam en hetzelfde wachtwoord (d.w.z. met MYSQL_USER en MYSQL_PASSWORD )

Als u goed naar uw opstartlogboek kijkt, ziet u een fout

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

Dit stopt de verdere verwerking van uw init-bestanden in docker-entrypoint-initdb.d en gaat verder met de rest van het opstartproces van de afbeelding (d.w.z. het herstarten van mysql na initialisatie op de tijdelijke server).

Zet gewoon MYSQL_USER . neer en MYSQL_PASSWORD in uw env vars, of stel een andere gebruiker in dan root en je ziet meteen dat je init-bestanden zijn verwerkt (vergeet niet je gegevensmap opnieuw te legen).




  1. Tips en trucs voor het implementeren van op databaserollen gebaseerde toegangscontroles voor MariaDB

  2. Proberen een MINUS-bewerking uit te voeren in MySQL

  3. Indexeert SQL Server null-waarden in een niet-geclusterde niet-unieke index?

  4. Ik kan geselecteerde records uit een tabel in de database in google sql cloud niet uitvoeren met php