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

Hvordan kan jeg initialisere en MySQL-database med skema i en Docker-container?

Jeg havde det samme problem, hvor jeg ønskede at initialisere min MySQL Docker-instans' skema, men jeg løb ind i problemer med at få dette til at virke efter at have googlet og fulgt andres eksempler. Sådan løste jeg det.

1) Dump dit MySQL-skema til en fil.

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

2) Brug ADD-kommandoen til at tilføje din skemafil til /docker-entrypoint-initdb.d mappe i Docker-beholderen. docker-entrypoint.sh fil vil køre alle filer i denne mappe, der ender med ".sql" mod 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) Start Docker MySQL-instansen.

docker-compose build
docker-compose up

Takket være Opsætning af MySQL og import af dump inden for Dockerfile for at lede mig ind på docker-entrypoint.sh og det faktum, at det kører både SQL- og shell-scripts!



  1. Nyt sporingsflag for at fikse tabelvariabel ydeevne

  2. FORALL erklæring med INDICES-OF bundet klausul i Oracle-databasen

  3. Android:onUpgrade kalder ikke ved databaseopgradering

  4. Sådan genereres testdata i SQL Server