Docker创建Mysql容器

文章讲述了如何在Docker中拉取并安装MySQL镜像,创建容器,并处理Navcat连接时遇到的权限错误2059和连接错误2003。对于2059错误,解决方案是登录容器修改MySQL用户权限;对于2003错误,可能是由于防火墙导致,关闭或禁用防火墙可解决问题。
摘要由CSDN通过智能技术生成

查看可以安装的mysql镜像:   docker search mysql

 STARS为ok的就是官网支持我们可以安装的版本

拉取最新版本的mysql镜像:         docker pull mysql:latest

拉取的时候如果网络不好的话可能会报错,报错后重新拉取就好

拉取成功后查看镜像: docker images

可以看到我已经拉取了mysql最新版本的镜像了,所有我就不重新拉取了

 

安装mysql容器:     

  docker run -itd --name=my_mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123  mysql:latest

安装后可以查看我们的my_mysql容器: docker ps -a

 这样外界有的就可以连接我们容器的mysql了,但是也有可以会有问题

1.用navcat连接时报2059的错误        没有权限

如果有这个错误,就需要我们登录my_mysql容器来修改权限:

   登录mysql容器:  docker exec -it my_mysql /bin/bash

登录mysql:   mysql -uroot -p   回车后需要输入密码,就是我们上面PASSWORD后的123,但是这块的密码不会显示,输完后回车即可,登录成功就会显示如下图

 

之后输入以下命令:

    使用mysql库:     use mysql;

    修改mysql的密码:alter user 'root'@'%' identified with mysql_native_password by '123456';

    刷新权限:  flush privileges;

   查看user表中的部分字段:

               select host,user,plugin,authentication_string from mysql.user;

     user下root的plugin的属性为mysql_native_password即可连接

 

 

2.用navcat连接时报2003的错误        服务关闭,或请求被拦截

查看容器: docker ps -a 

 

 如果STATUS为up证明服务没有关闭,就可以是防火墙的问题

查看防火墙的状态: systemctl status firewalld

 防火墙未关会导致连接报错:

关闭防火墙:  systemctl stop firewalld

 

就可以解决这个错误了

也可以 禁用防火墙(禁止开机启动)        systemctl disable firewalld

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值