大家好,我遇到了这个奇怪的错误。 所以我创建了一个从远程计算机到我的计算机的隧道。 SQL 在端口 3306 上的删除 PC 上运行 我的隧道配置开始了
ssh -N -L 33307:127.0.0.1:3306 something.something.com
这意味着来自远程 pc 端口 3306 的有效流量被定向到我 Mac 的 33307 127.0.0.1 端口。 现在的问题是
mysql -u 用户 -phfkahfkz -p 33307
不工作,给出 user@localhost 错误
mysql -u user -phfkahfkz -p 33307 -h 127.0.0.1 工作正常
我的主机文件已经有了
127.0.0.1 本地主机
我尝试添加
本地主机 127.0.0.1
我不知道发生了什么
另一个问题,所以当我有效地创建隧道时,我不需要在我的 Mac 上安装 sql,对吗?我虽然它可能正在尝试连接到我的本地 sql 副本,所以我停止了 SQL 在本地运行并且
mysql -u 用户 -phfkahfkz -p 33307
mysql -u 用户 -phfkahfkz -p 33307 -h 本地主机
都给出无法连接到本地 MySQL 服务器
mysql -u 用户 -phfkahfkz -p 33307 -h 127.0.0.1
在本地 sql 服务停止的情况下工作正常
最佳答案
在 MySQL 中,localhost 不同于 127.0.0.1。
Localhost 被特殊对待,这意味着它根本不使用 TCP/IP,而是尝试通过套接字文件与本地 MySQL 实例通信。
您必须明确使用 127.0.0.1。
阅读https://dev.mysql.com/doc/refman/5.7/en/connecting.html了解详情。
关于mysql - 通过 SSH 隧道访问 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46514408/