微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用“127.0.0.1”连接到 Sequel Pro,但可以使用“localhost”通过终端连接

如何解决无法使用“127.0.0.1”连接到 Sequel Pro,但可以使用“localhost”通过终端连接

我有一个在 Docker 上运行的项目,我可以通过终端连接到数据库

MysqL -h localhost -P 33060 --protocol=tcp -u 'notmyrealusername' -p 

这很好用,我可以显示数据库中的表。

但是,尝试通过 SequelPro 连接时,出现以下错误

Unable to connect to host 127.0.0.1,or the request timed out.

Be sure that the address is correct and that you have the necessary privileges,or try increasing the connection timeout (currently 10 seconds).

MysqL said: Protocol mismatch; server version = 11,client version = 10

注意项目运行的是MysqL 5.7.34,我电脑上的版本是8.0.23。

操作系统:Mac OS Catalina

我尝试过的:

this thread 开始,我也尝试过 2200 的端口,而且,SequelPro 不会让我使用 127.0.0.1。所以,我不能尝试第二个。

我还向 'notmyrealusername'@'127.0.0.1' 和 'notmyrealusername'@'localhost' 授予了所有权限,但这似乎也没有解决

回答菲利普的问题:

  • 是的,如果我尝试 MysqL -h 127.0.0.1,则会得到同样的错误

ERROR 2007 (HY000):协议不匹配;服务器版本 = 11,客户端 版本 = 10

问题: 有谁知道如何在 SequelPro 上连接到“localhost”而不是“127.0.0.1”,或者为什么我似乎无法连接到 SequelPro 上的这个数据库,当使用相同的数据时,我可以通过终端轻松连接?

预先感谢您提供的所有帮助/建议!

谢谢!

解决方法

我终于找到了解决方案。对于任何想知道的人,这里的关键是我正在使用 Docker。在这种情况下,如 this forum post 中所述,我们需要:

使用运行数据库的机器的 IP 地址( 真实的,而不是本地主机)作为主机地址。

如何?

  • 转到您的终端并使用命令 ifconfig 。您将获得大量数据,但您要查找的是本地网络 IP 地址。这通常看起来像 192.x.x.x10.x.x.x

  • 然后,在 Sequel Pro 或您使用的任何 GUI 中,使用此地址 (192....) 而不是 localhost。

我希望这可以帮助某人并节省您的时间:)

快乐编码!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。