-2

这可能是一个非常愚蠢的问题,但我是 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

在此处输入图像描述

然后 在此处输入图像描述

我想使用 arduino MCU 将数据远程插入数据库,我绝对不会写127.0.0.1

4

3 回答 3

0

您需要了解一些关于 TCP/IP 的知识才能了解这里发生的事情。127.0.0.1每个 TCP/IP 堆栈(实现)在地址(对于 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 和环回 IP 地址视为相同,但其他客户端则不这样做。这里提到的绑定地址通常根本不涉及。这适用于此处不相关的特殊情况。在超过 10 年的时间里,我从来没有为 MySQL 设置绑定地址。

更新:我希望反对者对他们的行为发表评论,以表明我的回答是否需要改进,或者他们只是无知。

于 2016-12-12T08:07:06.493 回答
0

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

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

于 2016-12-11T18:08:59.657 回答
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

于 2016-12-11T18:09:06.937 回答