如何在Mac的MAMP中允许远程连接到mysql数据库

时间:2013-03-11 16:54:40

标签: mysql database connection

我的Mac上有一个使用MAMP的MySQL数据库。我需要使用来自具有IP的远程服务器(例如184.173.9)的PHP脚本连接到此数据库....我已经尝试了2天而没有运气。

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

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

我用来连接的PHP代码如下所示:

mysql_connect('176.249.200 ....:3306','test','test')或死(mysql_error());

你能否告诉我我还缺少什么?

3 个答案:

答案 0 :(得分:0)

这是输出:

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

在测试时授予所有特权。*'测试'@'%'

在easytask上授予所有特权。*'测试'@'%'...

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

答案 1 :(得分:0)

首先确保它连接(您应该拒绝连接而不是超时/连接错误)。您可以通过执行以下命令来测试:

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

如果无法连接,则可能是防火墙问题或配置问题。

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

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

请注意,如果您使用localhost替换%,则用户将获得本地访问权限,如果您指定ip,则从特定IP替换;如果指定%,则只能远程访问。关于mysql页面http://dev.mysql.com/doc/refman/5.1/en/adding-users.html

的更多细节

之后,刷新权限以确保它们起作用:

  flush privileges

答案 2 :(得分:0)

  1. GRANT ALL PRIVILEGES ON database.* TO 'user'@'%' IDENTIFIED BY 'newpassword';

%是通配符,我们可以从任何IP地址连接MySQL服务器。 您还可以执行“%.domain.com”或“%.10.10.10”(用于特定的IP或域地址)。

  1. flush privileges使更改生效。

  2. MySql端口3306可以免费远程访问;因此,我们需要在MySQL配置文件中绑定IP地址。

    vi /etc/mysql/my.cnf 在文件中,搜索[mysqld]节,并添加新的绑定地址bind-address = 127.0.0.1 评论它并添加您的IP地址。 如果您的本地IP地址随机更改,请使用bind-address = 0.0.0.0

然后最后一步是重新启动MySql服务器。

  1. 以您的终端登录到mysql服务器 mysql -u usename -p -A -h youripaddress

-A`读取表信息以完成表名和列名 您可以关闭此功能以使用-A

更快地启动。

注意:首先ping您的IP地址。并查看是否有掉线和延迟问题。

我使用下面的这段代码在php中连接MySQL服务器。

$conn = '';

try { $conn = new PDO("mysql:host=ipaddress;dbname=databasename", 'userName', 'password'); } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); }