docker部署完mysql无法连接

1、创建实例命令
docker run -id --name=c_mysql -p 3306:3306 -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.37
2、查看启动的实例 docker ps
在这里插入图片描述
3、这里映射的是宿主机的3306端口,我已经把端口开放了
在这里插入图片描述
4、在宿主机进行连接
在这里插入图片描述
#这个报错像是mysql不存在,查看mysql是否启动
在这里插入图片描述
#mysql已启动,端口也没有被占用
5、已经在容器里面测试了,mysql可以正常连接;在试试将root用户开放可以任何主机访问
5.1、进入容器,并连接mysql
docker exec -it c_mysql bash
mysql -uroot -p123456
5.2、将root用户开放所有主机可以访问
mysql> grant all privileges on . to root@‘%’; #授权
mysql> flush privileges; #刷新权限表
6、在宿主进再次进行连接测试
在这里插入图片描述
#还是不行!!!
7、去百度了一下,觉得是宿主机的路由没有开启,来试试看
#一圈回来,发现问题出在宿主机,因为如果要使用mysql命令,就是必须要/usr/bin/目录下有这个命令。但是我是docker安装mysql所以,宿主机需要安装MySQL客户端连接docker的数据库,使用远程工具navicat连接时报的错,应该是root用户没有开启,任何主机可以访问的权限。由于上面已经开了,我现在测试navicat是可以远程连接的
在这里插入图片描述
8、上面说到了一个宿主机路由的问题,我们路由没开的话就会导致宿主机于容器实例网络隔绝,所以是要打开的。
8.1、查看路由是否打开
sysctl net.ipv4.ip_forward
在这里插入图片描述
#返回值为1代表路由已开启,为0就是未开启
8.2、开启路由
echo net.ipv4.ip_forward = 1 >>/etc/sysctl.conf #将命令写入到/etc/sysctl.conf文件中
sysctl -p #加载内核
sysctl net.ipv4.ip_forward #再次查看路由是否开启

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Docker安装MySQL出现问题的情况下,有几个可能的解决方案。 1. 首先,根据引用中的错误信息,可以尝试检查配置文件目录权限的问题。报错中提到无法读取'/etc/mysql/conf.d/'目录。可以通过确保相关目录具有正确的权限来解决此问题。例如,可以使用以下命令更改目录权限: ``` sudo chmod -R 755 /etc/mysql/conf.d/ ``` 2. 另外,根据引用中的命令行,如果您创建的容器在运行`docker ps`时未显示,请检查容器是否已停止。可以使用`docker logs`命令来查看容器的日志,以获取更多关于容器启动失败的信息。 3. 如果在删除镜像时遇到冲突错误,如引用所述,可以尝试使用镜像名称和标签的方式删除镜像,而不是使用镜像ID。例如,使用以下命令删除镜像: ``` docker rmi <镜像名称:标签> ``` 4. 当使用Navicat连接MySQL时出现2003错误时,可能是由于几个原因引起的。首先,您可以查看MySQL配置文件中的绑定地址是否为'127.0.0.1',如引用所述。如果是,则只能在本地访问MySQL。如果需要从其他主机访问MySQL,请将绑定地址更改为适当的IP地址。 5. 最后,如果在Docker容器中启动的实例没有运行,并且连接MySQL时出现2003错误,可以尝试使用以下命令来启动容器实例并进入容器内部: ``` docker start <容器名称> docker exec -it <容器名称> bash ``` 以上是一些可能的解决方案,您可以根据具体情况尝试其中的一种或多种方法来解决Docker安装MySQL失败的问题。如果问题仍然存在,请提供更多详细信息以便我们更好地帮助您。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值