docker上安装mysql

有的时候本地需要另外安装一个mysql并和本地并行使用,这个时候docker上的mysql就起作用了,谁不想同时拥有多个mysql呢,这篇文章希望能一站式解决你从无到有的状态。

首先,你需要使用拥有一个docker,不管你是什么操作系统,都可以简单地从链接的教程或者直接从官网上下载。这里指ubantu版本,其他os大同小异。

首先你可以从docker hub上查看拥有mysql的镜像:

docker search mysql

拉取hub上mysql5.7的镜像:

docker pull mysql:5.7

然后看一下你本地镜像有没有拉取成功的mysql镜像

docker images

如果成功的话 你会看到你本地的镜像,将运行的容器命名为mysql,使用镜像mysql:latest以后台模式启动一个容器,并将容器的3306端口映射到主机端口3306

docker run -itd --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

如果上行失败,可能需要创建本地对应的my.cnf文件

sudo mkdir -p /opt/docker_v/mysql/conf

sudo touch /opt/docker_v/mysql/conf/my.cnf

使用-v指令进行主机和镜像件文件的映射

docker run -p 3306:3306 --name mysql5.7 -v /opt/docker_v/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d 9b5 

查找创建的容器并启动它

docker ps | grep mysql

docker start [containerID]

docker exec -it mysql5.7 bash

重开bash,指定端口进入docker的mysql
此时,在容器内部应该已经可以进入mysql,在宿主机或者远程集群怎么进容器内的mysql呢?

连接的时候可能会有ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (111)类似的报错,这是因为虽然容器中监听了宿主机的端口,但如果想要外部连接到容器的mysql要解决权限问题

进入容器中的mysql给root@’%'赋权

grant all privileges on *.* to root@"%" identified by "123456" with grant option;

然后在外部连接映射的mysql ,当然宿主机需要对3306端口开放

查看已开放的端口

firewall-cmd --list-ports

开放端口(开放后需要要重启防火墙才生效)

firewall-cmd --zone=public --add-port=3338/tcp --permanent

重启防火墙

firewall-cmd --reload

使用桌面客户端链接mysql
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量化接口stockapi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值