How to import a mysql dump file into a Docker mysql container

  database, docker, docker-compose, dockerfile, mysql

Greetings and thanks in advance, I’m actually new to docker and docker-compose, watching a lot of videos and reading a lot of articles so far along with trying things.

I’ve got a front end container and a back end container that build and run alone as a Dockerfile and in a docker-compose setup.

(I’ve been building with Dockerfile first and then integrating the containers into docker-compose to make sure i understand things correctly)

I’m at the point where i need my database info, since i’ll use docker-compose, as i understand it, it should build under the same network with a react front end and django back end.

I have a backup mysql dump file that I’m working with, what i think i need to do is have a container running mysql server and serving out my tables (like I have it locally working). I haven’t been able to figure out how to import the backup into my docker mysql container.

Any help is appreciated.

What I’ve tried so far is using docker in the command line to outline the pieces i’ll need in the Dockerfile and then what to move into the docker-compose as mentioned above:

docker run -d --name root -e MYSQL_ROOT_PASSWORD=root mysql # to create my db container

Then I’ve tried a bunch of commands and permutations of commands, recently in the CLI, here are some of my most recent trials and errors:

docker exec -i root mysql -uroot -proot –force < /Users/homeImac/Downloads/dump-dev-2020-11-10-22-43-06.dmp

ERROR 1046 (3D000) at line 22: No database selected

docker exec -i f803170ce38b sh -c ‘exec mysql -uroot -p"root"’ < /Users/homeImac/Downloads/dump-dev-2020-11-10-22-43-06.dmp

ERROR 1046 (3D000) at line 22: No database selected

docker exec -i f803170ce38b sh -c ‘exec mysql -uroot -h -p"root"’ < /Users/homeImac/Downloads/dump-dev-2020-11-10-22-43-06.dmp

ERROR 1045 (28000): Access denied for user ‘root’@’homeimac’ (using password: YES)

I’ve scoured the web so far and i’m not sure where to go next, have I got the right idea? If anyone has an example of how to import a database dump (in dmp or dmp.gz), once i get that working, I’ll actually do that in the docker-compose file.

Thinking about it, i just have to create the container and import so I might not even need a Dockerfile.
I’ll cross that bridge when i get there. This is what I’m thinking though:

    image: mysql:5.7
    restart: always
      MYSQL_DATABASE: 'app'

etc etc

I’ve learned a lot super fast, maybe too fast. Thanks for any tips!

Source: Docker Questions