You need to create user via MYSQL_USER
, MYSQL_PASSWORD
env vars and use volume /docker-entrypoint-initdb.d
to map directory with your startup scripts (.sh
, .sql
, .sql.gz
)
docker run -p 3306:3306 --name mysql-server
-v ~/Development/web/myproject/docker/mysql:/var/lib/mysql
-v ~/Development/web/myproject/docker/yourstartupscripts:/docker-entrypoint-initdb.d
-e MYSQL_ROOT_PASSWORD=root
-e MYSQL_USER=youruser
-e MYSQL_PASSWORD=youruserpassword
-d mysql:latest
Explanation from: https://hub.docker.com/_/mysql/
MYSQL_USER, MYSQL_PASSWORD
These variables are optional, used in conjunction to create a new user and to set that user's password. This user will be granted superuser permissions (see above) for the database specified by the MYSQL_DATABASE
variable. Both variables are required for a user to be created.
Initializing a fresh instance
When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions .sh
, .sql
and .sql.gz
that are found in /docker-entrypoint-initdb.d
. Files will be executed in alphabetical order. You can easily populate your mysql services by mounting a SQL dump into that directory and provide custom images with contributed data. SQL files will be imported by default to the database specified by the MYSQL_DATABASE
variable.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…