使用Docker搭建Mysql集群时,使用下面的命令启动容器报错:
docker run -d -p 3310:3306 -v ~/docker/mysql/slave4/conf/:/etc/mysql/ -v ~/docker/mysql/slave4/data/:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
在网上查了下,从5.7的某个版本开始,
/etc/mysql/下没有conf.d目录了。
通过去掉-v ~/docker/mysql/slave4/conf/:/etc/mysql/和-v ~/docker/mysql/slave4/data/:/var/lib/mysql/这两个文件挂载配置,执行如下命令
docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
,成功启动容器后,进入容器docker exec -it slave4 /bin/bash,查看:
,回退到
/etc目录下,发现了mysql的配置文件:
。
所以如果想使用文件挂载,
- 需要提前创建相应的目录(我这里是
~/docker/mysql/slave4/conf/和~/docker/mysql/slave4/data/) - 在1中的
conf目录下创建conf.d和mysql.conf.d目录 - 运行容器
docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
容器启动成功后,将mysql配置文件复制到上面的conf目录下
docker cp slave4:/etc/my.cnf ~/docker/mysql/slave4/conf/
,然后重启容器即可。