为什么我的MySQL IP地址与运行的物理服务器IP不同?

时间:2016-12-11 17:55:31

标签: mysql mysql-workbench mysqlconnection

这可能是一个非常愚蠢的问题,但我是MySQL的新手,我刚刚发现MySQL有不同的ip即 127.0.0.1 及其主机名( localhost )机器ip是 192.168.1.3 ,机器主机名是 ceres ,为什么会这样?

我使用MySQL工作台连接到运行在不同机器上的MySQL:

它显示它在 pi@192.168.1.3

上将我登录到mysql root用户127.0.0.1

enter image description here

然后 enter image description here

我想使用arduino MCU远程向db插入数据,我绝对不能写127.0.0.1

3 个答案:

答案 0 :(得分:0)

127.0.0.1是环回接口,当您尝试在本地连接到mysql服务时(在运行mysql服务的同一服务器上)使用它。

如果您需要从另一台计算机连接到mysql服务,则需要其IP地址。您可以使用ifconfig查看为服务器分配的IP地址。

答案 1 :(得分:0)

每台服务器自身都是IP 127.0.0.1。如果要连接到安装在您登录的计算机上的MySQL,您将使用IP 127.0.0.1或localhost,但如果您想通过另一台计算机连接到该计算机上的MySQL,则必须识别其IP以便你可以通过这个IP连接。这就是为什么远程通过IP 192.168.1.3而不是127.0.0.1连接到MySQL服务器的原因。 localhost仍为IP 127.0.0.1

答案 2 :(得分:0)

您需要了解一些有关TCP / IP的信息,以了解此处发生的情况。每个TCP / IP堆栈(实现)都在地址127.0.0.1(对于IPv4)或::1(对于IPv6)下具有内部回送接口。这样可以轻松访问本地计算机上的堆栈,而无需知道它的TCP / IP地址(或者即使它没有)。

然后,参与TCP / IP网络的每台计算机都需要一个在该网络中已知的地址(在您的情况下为192.168.1.3)。当您使用本地计算机时,如果您使用它的公共IP地址或它的环回接口并不重要。第三个选项是名称localhost,它解析为环回接口。但请注意:如果最终出现在IPv4或IPv6变体上,则取决于操作系统。

如您所知,您可以为用户指定主机,该主机决定从哪个主机连接。此处user@localhostuser@127.0.0.1(或user@::1相同的主机。为了方便用户,MySQL终端隐含地将localhost和loopback IP地址视为相同,但其他客户端则不然。这里提到的绑定地址通常根本不涉及。这适用于此处不相关的特殊情况。十多年来,我从来没有为MySQL设置绑定地址。

更新:我希望downvoters评论他们的行动,以显示我的答案中是否需要改进某些内容,或者他们只是无知。