This is a simple way of importing MySQL database in Docker.
-
In you Dockerfile you must have a shared folder. Shared folder is a directory in your host machine that is mounted to Docker instance.
-
Put the exported sql file in the shared folder.
-
Login to your Docker instance via
docker exec -it DOCKER_CONTAINER_ID bin/bash
. -
Login to MySQL via
mysql -u USERNAME -p
. -
While in MySQL CLI, create a database via
create database DB_NAME;
. -
While in MySQL CLI, use the database you just created via
use DB_NAME;
. -
While in MySQL CLI, import the sql file via
source /path/to/file.sql
.
Done
I execute
docker exec -i mysql_container mysql -uroot -psecret database_name < db.sql
, throw error following:mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysqldump: [Warning] Using a password on the command line interface can be insec' at line 1