在Mac Mini / Time Capsule上远程访问MySQL

时间:2017-09-19 14:45:30

标签: mysql macos remote-access portforwarding

我目前正在尝试在服务器上运行应用程序,但我的客户对他们的数据非常“挑剔”,并希望将数据库存储在他们自己的内部办公室服务器上。我已经安装了MySQL并且可以让应用程序在本地运行,但由于某些特定原因,应用程序需要在其他地方运行。

我基本上无法从其他位置访问MySQL。我认为我的主要障碍是将端口转发到正确的位置。 MySQL安装在具有本地IP地址192.168.1.242的mac mini上,路由器/调制解调器是Apple Time Capsule。我已经尝试过查看教程,但他们都有我无法访问的选项。我附上了我可以访问的选项的屏幕截图以及我到目前为止尝试过的设置。

enter image description here enter image description here

可能需要的其他信息是:

  • 我需要从PHP连接
  • 我在MySQL中使用通配符(%)
  • 设置了一个用户
  • 我在CMD的本地计算机上使用以下命令测试它: mysql -u username -h remote_ip_address -p
  • 我收到以下错误: ERROR 2003(HY000):无法连接到'REMOTE_IP_ADDRESS'上的MySQL服务器(10061)
  • 在Mac Mini上完全关闭防火墙
  • my.cnf文件中没有任何内容
  • OS is Sierra

这就是我现在所能想到的所有内容,但我们将非常感谢任何建议,并且可以提供所需的更多信息。

PS。显然我对MAC机器/网络不是很了解

2 个答案:

答案 0 :(得分:1)

对于任何阅读此内容的人,我都有一个非常具体的问题。我用自制软件安装了MySQL。 Homebrew将MySQL绑定到127.0.0.1,因此无论您尝试做什么,它都只允许从同一台机器连接到MySQL。要修复它,我必须编辑/usr/local/Cellar/mysql//homebrew.mxcl.mysql.plist并用bind-address = *替换--bind-address = 127.0.0.1。

答案 1 :(得分:0)

MySQL有一个用户/ IP的内部防火墙。即使您可以在本地连接,也可能没有远程权限:

在MySQL服务器上尝试root用户(本地优先!)

 GRANT ALL ON <db>.* TO '<user>'@'<remoteIP>' IDENTIFIED BY '<password>';

其中

<db>是数据库的名称

<user>是您连接的名称

<remoteIP>是您尝试连接的外部办事处IP FROM

<password>应该是不言自明的!

This will explain the options better