当前位置: 首页 > 知识库问答 >
问题:

无法通过公共IP连接数据库

丰誉
2023-03-14

笔记操作系统是ubuntu 14*

我在MYSQL服务器上的连接让我头疼不已。我尝试通过我的公共ip连接到我的MYSQL服务器内部。但我无法连接。当我连接到本地主机和外部连接时,我能够连接。

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1

我注释了绑定地址,这应该将地址绑定到0.0.0.0。我还试图将绑定广告设置为0.0.0.0。这也行不通。

我的主机文件设置如下:

    127.0.0.1 MY-IP

当我将端口80上的telnet连接到我的公共ip时,没有问题。

 telnet MY-IP 80

我得到:

 Trying MY-IP...
 Connected to MY-IP.
 Escape character is '^]'.

但当我在端口3306上尝试此功能时,它会继续:

 Trying MY-IP...

我还向我的MYSQL用户授予了所有正确的权限。我可以连接外部和内部。但我不可能在内部与我的公共IP连接。

我还试图用netstat找到一个解决方案

netstat -tln 

给我

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN

编辑:刚刚禁用了UFW。它仍然不起作用。

ufw status
Status: inactive

EDIT2:mysql是否可能忽略了/etc/hosts文件?

有没有人能帮我进一步提出一些解决问题的好主意。

共有1个答案

隗俊誉
2023-03-14

您应该将绑定地址更改为0.0.0.0然后重新启动mysqld。还要确保没有启用防火墙:

iptables -n -L 

如果有规则,阻塞端口3306,删除它们,或者使用

iptables -F

还可以使用netstat检查服务器是否正在监听外部ip:

netstat -tupan |grep :3306
 类似资料:
  • 我在EC2(Fedora)上运行了elasticsearch, 我无法使用公共IP或主机名进行外部连接。 ElasticSearch正确启动,我可以使用:curl-XGET在机器上本地访问http://localhost:9200 我确实遵循了这里解释的所有步骤:Ec2上的elasticsearch无法命中公共IP(超时) 喜欢 按照TJ在评论中说的做,重新启动实例。我不确定这是否有必要,但我做得

  • 我可以对我的AWS EC2实例使用SSH ok。Grizzly已经安装并启动。 我无法通过浏览器从本地计算机连接到EC2公共IPhttp://publicip:8080/索引。我有一个安全组,允许传入访问HTTP端口8080,允许所有传出。我还尝试允许ICMP进行ping,但我也无法ping。我删除了所有安全组限制,但这也不起作用。我检查了iptables,没有任何限制规则。 有什么想法吗? 谢谢

  • 我有一个Angular应用程序,有一个API,它连接并调用一个在服务器上建立的数据库,该数据库具有一个公共IP。 第二,你有什么想法为什么会发生这种情况吗? 谢谢。

  • 我的入口pod无法通过IP访问两个集群IP服务。有很多其他集群IP服务它没有到达困难。包括在同一个命名空间中。另一个pod到达服务没有问题(我在同一个命名空间中尝试了默认后端,一切正常)。 我应该去哪里?以下是我的实际服务,它无法到达第一个,但可以到达第二个: 我的入口吊舱:

  • 无法通过公共IP访问EC2 Ubuntu 18.04服务器 重启工作EC2实例 正常重启,没有错误 安全组,检查80,443的入站OK 我还能查什么?

  • 我在MongoDB中配置了一个三节点副本集;复制是同步的。 我可以单独连接到每台服务器,并使用每台服务器的专用IP地址连接到副本集,如下所示: mongo—主机rs0/10。十、 X.X:27017,10。十、 X.X:27017,10。十、 X.X:27017-u根-p abc123-authenticationDatabase管理员 但是当我尝试使用服务器的公共IP地址连接到副本集时,如下所示