这可能是一个非常愚蠢的问题,但我是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远程向db插入数据,我绝对不能写127.0.0.1
答案 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@localhost
和user@127.0.0.1
(或user@::1
)不相同的主机。为了方便用户,MySQL终端隐含地将localhost和loopback IP地址视为相同,但其他客户端则不然。这里提到的绑定地址通常根本不涉及。这适用于此处不相关的特殊情况。十多年来,我从来没有为MySQL设置绑定地址。
更新:我希望downvoters评论他们的行动,以显示我的答案中是否需要改进某些内容,或者他们只是无知。