docker安装mysql突然无法远程连接

docker安装mysql突然莫名其妙的无法远程连接

docker安装mysql突然无法远程访问

问题背景

大概一年前在服务器中通过docker安装mysql5.7端口映射关系是3308->3306
前期在服务器上开方了3308端口

firewall-cmd --zone=public --add-port=3308/tcp --permanent
firewall-cmd --reload   # 配置立即生效

博主用的是腾讯云服务器,在服务器安全组里也开放了3308端口
mysql也授权了远程连接
至此可在本地电脑远程连接mysql

=就这样过了一年多

发现问题

今天博主通过命令安装了宝塔,然后就发现docker安装的mysql无法连接了。。。。。。

排查问题

于是进行排查
首先看3308端口是否在腾讯云后台安全组放行
在这里插入图片描述
如上图,入站规则是全部放行的

再看服务器防火墙是否开放3308端口

[root@VM_0_2_centos ~]# firewall-cmd --query-port=3308/tcp
You're performing an operation over default zone ('public'),
but your connections/interfaces are in zone 'docker' (see --get-active-zones)
You most likely need to use --zone=docker option.

yes

发现3308端口也是放行的
执行telnet xx.xxx.xxx.xx 3308无法连接
至此就很莫名奇妙怎么会不通呢
很是郁闷。。。。。。
实在想不通 只好把服务器防火墙关了
再来用telnet测试3308端口居然能连上了,远程连接mysql也成功了
然后再开启服务器防火墙
再来用telnet测试3308端口结果无法连接上,远程连接mysql也失败了
至此可以断定问题一定出在防火墙上!
再来仔细看一下服务器开放端口查询返回的结果好像有点什么不一样
在这里插入图片描述
突然想起来以往查询端口返回的结果只有yes或者no像下面这样
在这里插入图片描述
那么我们再来执行一下下面的命令

[root@VM_0_2_centos ~]# firewall-cmd --query-port=3308/tcp --zone=docker
no

发现返回结果为no
到这里大致知道问题出在这了,通过翻译可以理解查询firewalld中关于TCP端口3308的状态默认是在 public 区域进行的而实际上TCP连接或接口被分配在了docker区域
通过查阅资料得知在firewalld中,不同的区域可以有不同的规则集,因此需要指定正确的区域来执行你的查询。
到此可得出docker区域的3308端口没有开放!

解决问题

执行命令放行docker区域端口

[root@VM_0_2_centos local]# firewall-cmd --zone=docker --add-port=3308/tcp --permanent
success
[root@VM_0_2_centos local]# firewall-cmd --reload
success

[root@VM_0_2_centos local]# firewall-cmd --query-port=3308/tcp --zone=docker
yes

docker区域端口放行成功后
再来用telnet测试3308端口可以连上并且远程连接mysql也成功了。

总结

	问题出现的原因应该是安装宝塔的过程中升级了防火墙,新版本的防火墙执行的是更严格的规则导致docker安装的mysql无法远程连接。

相关推荐

  1. docker安装mysql远程连接

    2024-07-19 09:08:03       54 阅读
  2. docker安装mysql,允许远程连接

    2024-07-19 09:08:03       32 阅读
  3. Docker安装Mysql无法连接排查过程

    2024-07-19 09:08:03       31 阅读
  4. MySQL无法远程连接方案解决(示例)

    2024-07-19 09:08:03       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 09:08:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 09:08:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 09:08:03       58 阅读
  4. Python语言-面向对象

    2024-07-19 09:08:03       69 阅读

热门阅读

  1. Pandas库学习之DataFrame.drop()函数

    2024-07-19 09:08:03       21 阅读
  2. Kotlin 协程简化回调

    2024-07-19 09:08:03       21 阅读
  3. YOLOv8_ ByteTrack目标跟踪、模型部署

    2024-07-19 09:08:03       22 阅读
  4. Git 和 Subversion (SVN)的全方面对比

    2024-07-19 09:08:03       21 阅读
  5. 使用 com.alibaba:easyexcel 导出excel文件时遇到的问题

    2024-07-19 09:08:03       23 阅读
  6. 浏览器的卡顿与react的解决思路

    2024-07-19 09:08:03       19 阅读
  7. Zabbix的安装部署及使用流程

    2024-07-19 09:08:03       25 阅读
  8. 速盾:cdn是啥?cdn是什么?

    2024-07-19 09:08:03       24 阅读
  9. Spark on YARN

    2024-07-19 09:08:03       23 阅读
  10. 算法日记day 13(删除字符串中的所有重复元素)

    2024-07-19 09:08:03       22 阅读
  11. 【html】html的基础知识(面试重点)

    2024-07-19 09:08:03       21 阅读