原因:
之前一直用的都是mysql5.7的,新项目需要用mysql8.0以上的版本,就想着看看能不能部署两个不同版本的mysql数据库。
成果:
成功部署了两个不同版本的mysql数据库。
过程中遇到的问题:
首先提示一下mysql8.0以上的版本默认区分大小写。一旦部署很难更改,所以要在部署是就声明不区分大小写。
1.数据挂载问题,两个数据库不能挂载在同一文件夹下,要区分开:
最初:
修改后:
2.端口号问题:本人使用的是虚拟机docker中的mysql。
修改前使用的是3306:3306和3307:3307
修改后使用的是:
这里推荐一篇文章,从这里获得了很多感悟https://segmentfault.com/a/1190000022777204
下面贴上源代码:
1.拉取镜像
docker pull mysql:8.0
2.查看镜像是否拉取成功
docker images
3.创建mysql容器 #注意 \ 前一定加空格 \ 后不是回车
docker run \
-d \
--restart=always \
-p 3307:3306 \
--name mysql8.0 \
-v "/mysql/data/"conf:/etc/mysql/conf.d \
-v "/mysql/data/"logs:/var/log/mysql \
-v "/mysql/data/"data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0 \
--lower_case_table_names=1
-v 那可能需要再根目录下创建mysql文件夹(本人是手动创建的,不创建应该也没啥事)
另一个容器:
#在用户目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql
#执行如下命令,启动mysql容器
docker run -id \
-p 3306:3306 \
--name=mysql5.7 \
--restart=always \
-v /root/mysql/conf:/etc/mysql/conf.d \
-v /root/mysql/logs:/var/log/mysql \
-v /root/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7
注:最主要的就是 -v 那两个容器地址不能一样
如果是新数据库部署好了成功运行,但就是外部连接不上,那就要看看是不是数据库权限或者其他问题了。