验证端口已打开

时间:2014-01-17 20:25:54

标签: java mysql network-programming

我正在尝试通过在我的计算机上运行的java程序创建与raspberrypi上托管的MySQL数据库的连接。到目前为止,当我运行程序时,我收到通信链接失败。

作为我的故障排除的一部分,我试图测试端口3306是否打开。

我使用过这样的网站 - http://www.mynetworktest.com/ports.php 但是我不明白如果我可以在网上冲浪,80端口是如何关闭的,我不确定所提供的其他信息是否可靠。

如果端口是打开的,最好的测试方法是什么?如果端口80真正关闭,我怎么能上网?

3 个答案:

答案 0 :(得分:1)

两件事(你可能对第二点更感兴趣):

  1. 您引用的端口是传入端口号。您的设备不会使用端口80来“浏览网页”(连接到网络服务器)。它将随机选择一个端口(用于所有意图和目的)以用于其传出连接,并且其请求文件的Web服务器使用端口80.为此,假设您没有任何过于激进的防火墙规则计算机,你只需要确保你需要的传入端口在PI的防火墙中打开(默认情况下为3306,但如果你想要满足自己的需要,可以随意仔细检查my.cnf)

  2. 你可能遇到的问题是,大多数mysql默认配置都带有MySQL绑定到127.0.0.1 ip的默认设置。这意味着只有通过本地环回接口连接的设备才能连接(这意味着只有那些在同一设备上运行的客户端)。编辑my.cnf并删除bind_address行,或设置为:

    bind_address = 0.0.0.0

  3. 然后重启mysql服务

    你在做什么告诉MySQL绑定到任何网络接口(0.0.0.0)而不是本地环回接口。您也可以将其设置为您本地分配的IP地址,该地址只允许本地网络上的用户连接,但为了方便起见(并且不必担心DHCP),我现在只需将其设置为0.0.0.0

答案 1 :(得分:0)

抱歉,我不确定你的意思。是否有2台独立的电脑1)raspberrpi 2)“我的电脑”?如果是这样,“我的电脑”如何连接到“raspberrypi”?它们是相互连接的,还是它们都是独立连接到互联网的?

通常,您在两台计算机之间创建直接连接(E.G.以太网电缆)。然后确保两台机器都有一条设置到另一台机器的“路径”。您的mysql连接字符串(设置)将包含您的覆盆子计算机的IP地址或主机名。

你是对的,默认情况下mysql在端口3306上运行(不是端口80)。

您正在运行哪些操作系统?

抱歉,问题多于答案。

希望有所帮助:)

答案 2 :(得分:0)

你可以使用

nc -l 3306

如果 “端口已经打开” 失败,您可以确保端口已经打开:-)
你也可以从其他电脑telnet到那个端口。

telnet 192.168.1.92 3306

确定是否可以从其他计算机访问该端口。
你应该这样做来改变mysql配置:
这是链接:how to Configure mysql
你应该换行

[mysqld]
bind-address = 127.0.0.1

并将其设置为0.0.0.0