sql >> Database >  >> RDS >> Mysql

Hoe kan ik een MySQL-database initialiseren met schema in een Docker-container?

Ik had hetzelfde probleem waarbij ik het schema van mijn MySQL Docker-instantie wilde initialiseren, maar ik kreeg problemen om dit werkend te krijgen nadat ik wat Googlen had gedaan en de voorbeelden van anderen had gevolgd. Hier is hoe ik het heb opgelost.

1) Dump je MySQL-schema naar een bestand.

mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql

2) Gebruik de opdracht ADD om uw schemabestand toe te voegen aan de /docker-entrypoint-initdb.d map in de Docker-container. De docker-entrypoint.sh bestand zal alle bestanden in deze map uitvoeren die eindigen op ".sql" tegen de MySQL-database.

Dockerbestand:

FROM mysql:5.7.15

MAINTAINER me

ENV MYSQL_DATABASE=<schema_name> \
    MYSQL_ROOT_PASSWORD=<password>

ADD schema.sql /docker-entrypoint-initdb.d

EXPOSE 3306

3) Start de Docker MySQL-instantie op.

docker-compose build
docker-compose up

Dankzij MySQL instellen en dump binnen Dockerbestand om me op de hoogte te houden van de docker-entrypoint.sh en het feit dat het zowel SQL- als shell-scripts uitvoert!



  1. Verbeter de afstemming van SQL Server-prestaties met deze 3 tips

  2. sqlite geretourneerd:foutcode =1, msg =geen dergelijke kolom:keuken1

  3. ORACLE IIF-verklaring

  4. Hoe UNCOMPRESSED_LENGTH() werkt in MariaDB