Docker搭建MySQL服务

大概步骤

1. 下载MySQL镜像 
2. 创建运行容器


详细步骤

第一步,拉取MySQL镜像

# docker pull mysql

之后docker会自动拉取(下载)MySQL镜像。

注意,若提示拉取失败就重复几次,总有一次会成功的。在上一篇《Docker问题总结》有介绍设置容器仓库的办法。

拉取成功后我们查看一下:

# docker images


第二步,创建并启动一个MySQL容器

输入以下命令:

# docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql

  • –name:给新创建的容器命名,此处命名为pwc-mysql
  • -e:配置信息,此处配置mysqlroot用户的登陆密码
  • -p:端口映射,此处映射主机3306端口容器pwc-mysql的3306端口
  • -d:成功启动容器后输出容器的完整ID,例如上图 73f8811f669ee...
  • 最后一个mysql指的是mysql镜像名字

到这里我们查看容器运行状态:

$ sudo docker ps

03

上图可以看到容器的简写ID,容器的源镜像,创建时间,状态,端口映射信息,容器名字等。

mysql容器虽然成功了,但有个docker端口映射错误 iptables: No chain/target/match by that name.,

解决方案:输入如下命令,重启docker后解决

[root@localhost ~]# pkill docker
[root@localhost ~]# iptables -t nat -F
[root@localhost ~]# ifconfig docker0 down
[root@localhost ~]# brctl delbr docker0
-bash: brctl: command not found
[root@localhost ~]# yum install bridge-utils  [解决brctl: command not found问题]
[root@localhost ~]# brctl delbr docker0
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS       
                        NAMESbcca37f16596        mysql               "docker-entrypoint..."   5 seconds ago       Up 4 seconds        0.0.0.0:3306
->3306/tcp, 33060/tcp   pwc-mysql

 

此时通过navicat连接Mysql出现Client does not support authentication protocol requested by server错误

解决方案

1.进入mysql容器

docker exec -it pwc-mysql /bin/bash

2.进入mysql

mysql -uroot -pmima

3.修改密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'passwd';

第三步,测试连接MySQL

这里我使用navicat远程连接,连接MySQL前需要防火墙开放端口或者关闭防火墙。

开放端口:

$ sudo firewall-cmd --add-port=3306/tcp

关闭防火墙:

$ sudo systemctl stop firewalld

接着使用navicat连接 
04

连接成功,也可以进行相关数据库操作,因此MySQL服务搭建成功!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值