简体   繁体   中英

MySQL conf file in MySQL docker

I am running MySQL 5.7.20 in a docker container created using the official MySQL docker image . The MySQL conf file needs to be mounted on the host Ubuntu system.

Currently the MySQL docker container is started using the command

sudo docker run -d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=test \
-v /root/test/mysql/var/lib:/var/lib/mysql \
-v /root/test/mysql/etc:/etc/mysql \
--name test-mysql \
mysql:5.7

However there are no conf files in /root/test/mysql/etc ... Connected to the docker container's bash and found that /etc/mysql is empty!

Where are the conf files located? Shouldnt there be some in /etc/mysql/conf.d/ and /etc/mysql/mysql.conf.d/ ?

If you run the command without mounting any volumes:

$ docker run -it mysql ls /etc/mysql
conf.d  my.cnf  my.cnf.fallback  mysql.cnf  mysql.conf.d

If /root/test/mysql/etc exists as an empty folder and you mount it onto /etc/mysql all the content of /etc/mysql will be "replaced" with those in /root/test/mysql/etc .

You can have an empty /root/test/mysql/etc folder and do the following:

docker volume create --driver local \
    --opt type=none \
    --opt device=/root/test/mysql/etc \
    --opt o=bind \
    mysql_vol

sudo docker run -d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=test \
-v /root/test/mysql/var/lib:/var/lib/mysql \
-v mysql_vol:/etc/mysql \
--name test-mysql \
mysql:5.7

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM