在同一个docker容器中部署两个不同的mysql数据库

原因:

        之前一直用的都是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 那两个容器地址不能一样 

如果是新数据库部署好了成功运行,但就是外部连接不上,那就要看看是不是数据库权限或者其他问题了。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值