MySQL可以在本地连接但不能远程连接

时间:2012-05-26 11:20:07

标签: android mysql database localhost mamp

我正在尝试从我的IP地址连接到我正在帮助解决的移动网络应用程序,因此我可以在我的Android手机上进行测试。但是,当我从localhost和我的IP地址访问登录屏幕时,它会显示,但它只允许我从本地地址登录 - 它甚至没有从IP地址连接。

我正在运行MAMP Pro并取消选中“仅允许本地访问”。我进入MySQL my.cnf并将绑定地址从127.0.0.1更改为我自己的IP。我还注释掉了“MAMP_skip-networking_MAMP”行。然后,我创建了一个与config.php中的用户匹配的用户,具有对数据库的完全访问权限,并将其主机设置为%。

在config.php文件中,我尝试将主机名更改为:

  • 本地主机
  • localhost:[PORT NUMBER]
  • [IP地址]
  • [IP地址]:[端口号]
  • /Applications/MAMP/tmp/mysql/mysql.sock

仍然......没什么。当我尝试从我的IP访问该站点时,我仍然无法登录。任何帮助/方向将不胜感激..谢谢!

1 个答案:

答案 0 :(得分:0)

问题不在于客户端,很可能与服务器有关。大多数MySQL服务器都配置为(我认为默认情况下)拒绝非本地连接尝试。给我几秒钟的时间来调整配置/信息架构的变化,以便你可以改变它。

警告,为所有请求打开数据库是个坏主意。您要么让它对来自一个用户的所有IP请求开放,要么允许来自特定IP的任何用户的请求(或者甚至更好,将两者合并并使其成为只有特定用户可以从特定IP发出请求)

这是一个很好的(但又危险的)教程:

how-do-i-enable-remote-access-to-mysql-database-server

如果我没弄错的话,简单的方法就是运行以下查询:(假设你是“superadmin”:

USE information_schema;
UPDATE USER_PRIVILEGES SET Host='%' WHERE user='superadmin';
FLUSH PRIVILEGES;
USE mysql;
UPDATE user SET Host='%' WHERE user='superadmin';

以上基本上授予superadmin访问mysql db(如果尚未授权),然后切换到该db并从任何IP授予superadmin访问权限。再次,按照提供的链接查看如何根据每个用户和每个IP进行调整,否则您只是为了使用漂亮的MySQL GUI而打开一个受伤的世界。

可能比上述更复杂(可能需要重新启动等)。另一篇好文章是:

MySQL - Adding Users - 查找提及通配符的部分。