最近在虚拟机上通过docker安装两个版本的mysql时,出现一些问题,作以记录。
准备:环境已有docker
1、docker安装mysql5.7
拉取镜像:
docker pull mysql:5.7
查看镜像:
docker images
启动mysql,将容器内的文件映射到外部,方便管理和查看,而且安装多个版本mysql,端口映射需要注意,此次将mysql5.7的3306端口映射为3307:
sudo docker run -p 3307:3306 --name mysql5.7 \
-v /mydata/mysql5.7/log:/var/log/mysql \
-v /mydata/mysql5.7/data:/var/lib/mysql \
-v /mydata/mysql5.7/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
查看启动容器:
docker ps
2、docker安装mysql8.0.26
拉取镜像:
docker pull mysql:8.0.26
查看镜像:
docker images
启动mysql,和5.7的基本一致,特殊的有两点:
1、mysql8.0.26的3306映射为3306和mysql5.7的区分开
2、mysql8.0.26启动后会报错,Exited (1),从日志上看,会报mysql-files文件找不到,此处需要将mysql-files文件映射出来
-v /mydata/mysql/mysql-files:/var/lib/mysql-files \
完整命令如下:
sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-v /mydata/mysql/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.26
至此mysql5.7和mysql8.0.26两个版本的mysql都安装到环境上了