我在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
我尝试过的:
在这条线中,我也尝试过使用2200端口,而且SequelPro不允许我使用127.0.0.1。所以,我不能再试第二个了。
我还授予了'notmyrealusername'@'127.0.0.1‘和'notmyrealusername'@'localhost’的所有特权,但这似乎也没有解决这个问题。
回答菲利普的问题:
mysql -h 127.0.0.1,那么我会得到相同的错误:错误2007 (HY000):协议不匹配;服务器版本= 11,客户端版本= 10
问题:是否有人知道如何连接到“localhost”而不是SequelPro上的'127.0.0.1‘,或者为什么我似乎无法连接到SequelPro上的数据库,而使用相同的数据,我可以很容易地通过终端连接?
谢谢你所能提供的所有帮助/建议!
谢谢!
发布于 2021-07-12 16:58:13
我终于找到了解决办法。对于任何想知道的人来说,这里的关键是我使用的是码头。在这种情况下,如这个论坛帖子所述,我们需要:
使用正在运行数据库的机器的IP地址(真正的数据库,而不是本地主机)作为主机地址。
怎么做?
ifconfig。您将得到一堆数据,但您要寻找的是本地网络IP地址。这通常看起来像192.x.x.x或10.x.x.x。我希望这能帮到别人,帮你节省时间:)
编码愉快!
https://stackoverflow.com/questions/68329088
复制相似问题