【问题标题】:Why is my port 3306 closed even though I do not have bind-address and skip-networking line at all?为什么我的端口 3306 关闭,即使我根本没有 bind-address 和 skip-networking 行?
【发布时间】:2017-10-03 11:24:25
【问题描述】:

我在 Mac OS X 主机内的 Mac OS X VMware Fusion 映像上运行了一个带有 mysql 的 Web 服务。两台 Mac 都在 Security & Privacy 下显示 Firewall:Off。

当我执行telnet localhost 3306telnet 127.0.0.1 3306 时,我可以连接。但是,如果我使用telnet SERVERDOMAIN 3306,则无法访问。

在 Mac 上,.cnf 文件中根本没有 bind-address 或 skip-networking 行。在mysql -help -verbose 中,bind-address 显示为 *,skip-networking 为 FALSE;

在 mysql.user 中,我只在主机列下看到 localhost,并且我已经使用 GRANT 来授予 root 和其他用户的访问权限。 (由于 telnet 到 3306 失败,我认为我们还没有。)

我们还缺少什么可能导致我无法远程连接到 mysql?

【问题讨论】:

  • telnet SERVERDOMAIN 3306, it is not reachable 你是对的,这排除了与权限相关的一切问题。它还排除了bind 和skip-networking,两者都会导致Connection refused

标签: mysql macos firewall


【解决方案1】:

关于连接到 MySQL 的一般视图:

Connect to MySQL from external machine

在你的情况下,你在同一个子网上,所以你可以忘记路由器/互联网部分。

【讨论】:

  • 这里与远程访问相关的大多数答案都说使用 # 注释掉绑定地址。这不是说没有绑定地址吗?
  • @zaolian 你是对的:dev.mysql.com/doc/refman/5.7/en/…
  • @zaolian,大多数情况下,你需要一个GRANT 到external_ip。
  • 我在 上运行了 GRANT ALL PRIVILEGES。 TO 'root'@'%' IDENTIFIED by 'PASSWORD' WITH GRANT OPTION;
  • 是时候问愚蠢的问题了:从客户端 - 你能 ping 服务器(不是端口 3306)吗?如果您不介意,请分享 IP
猜你喜欢
  • 2014-05-09
  • 1970-01-01
  • 2016-05-29
  • 2021-01-10
  • 2014-04-28
  • 1970-01-01
  • 2020-02-23
  • 1970-01-01
  • 2020-05-12
相关资源
最近更新 更多