2013-03-11 79 views
1

我在我的Mac上使用MAMP有一个MySQL数据库。我需要使用来自远程服务器的IP脚本(例如184.173.9)的PHP脚本连接到这个数据库....我已经尝试了2天,现在没有运气。如何在Mac的MAMP中允许远程连接到mysql数据库

我试过一些论坛,他们要求在MAMP的my.cnf文件中注释掉skip-networking并在远程服务器的IP上使用bind-address。首先,我没有在MAMP中找到my.cnf文件,但最终从Library/support-files/my-medium.cnf中找到了一个。我将它复制并放在tmp/mysql/my.cnf中。但没有任何工作。

我还关闭了系统偏好设置/安全&隐私中的防火墙。

我使用连接看起来像这样的PHP代码:

的mysql_connect( '176.249.200 ....:3306', '测试', '测试')或死亡(mysql_error());

你能否给我建议我还缺什么?

+0

的IP是从您的计算机或另一台服务器? – 2013-03-11 17:18:28

+0

你能提供'SHOW GRANTS FOR'test'的输出吗,'' – Dancrumb 2013-03-11 17:42:17

回答

0

以下是输出:

授予所有特权。 TO '测试' @ '%' IDENTIFI ...

GRANT ALL PRIVILEGES ON测试。* TO '测试' @ '%'

GRANT ALL PRIVILEGES ON easytask。* TO '测试' @ '%' ...

IP地址184.173.9 ....是一个专用的远程服务器,我有PHP脚本。而176.249.200 ....是我的本地IP,3306是MySQL端口。

0

首先确保它连接(你应该得到一个连接被拒绝,而不是超时/连接错误)。你可以通过执行测试:

mysql -h ip.addr.goes.here -p -u test 

,如果它不能连接,那么它就是一个防火墙问题或配置问题。

如果它连接并且权限被拒绝,那么它可能是一个授权问题。创建一个用户,然后授予表的访问

CREATE USER 'dbusername'@'%' IDENTIFIED BY 'some_pass'; 
    GRANT ALL PRIVILEGES ON *.* TO 'dbusername'@'%' 

注意,你如果用本地主机替换%,从一个特定的IP,如果你指定IP或者只有远程如果指定%用户会得到本地访问。 MySQL的页面http://dev.mysql.com/doc/refman/5.1/en/adding-users.html

后,冲水特权的更多细节,以确保他们在行动:

flush privileges