sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag initiera en MySQL-databas med schema i en Docker-behållare?

Jag hade samma problem där jag ville initiera min MySQL Docker-instanss schema, men jag stötte på svårigheter att få detta att fungera efter att ha googlat och följt andras exempel. Så här löste jag det.

1) Dumpa ditt MySQL-schema till en fil.

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

2) Använd kommandot ADD för att lägga till din schemafil till /docker-entrypoint-initdb.d katalogen i Docker-behållaren. docker-entrypoint.sh filen kommer att köra alla filer i den här katalogen som slutar med ".sql" mot MySQL-databasen.

Dockerfil:

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) Starta Docker MySQL-instansen.

docker-compose build
docker-compose up

Tack vare att konfigurerar MySQL och importerar dump inom Dockerfile för att du har tipsat mig om docker-entrypoint.sh och det faktum att den kör både SQL- och skalskript!



  1. SqlDependency aktiverar inte OnChange-händelsen när datauppsättningen ändras

  2. MySQL Performance – Slow Query och innodb_buffer_pool_size

  3. Arbeta med MySQL TIMESTAMP-kolumner i SQL Server

  4. hur man hittar alla index och deras kolumner för tabeller, vyer och synonymer i Oracle