2011-10-13 95 views
14

我正在使用PHP和MySQL建立数据库连接,唯一的变化是我试图从我的本地计算机使用我的服务器IP地址访问我的远程服务器。Mysql - 使用IP地址连接到远程服务器

mysql_connect("x.xx.xx.x","username","password") or die(mysql_error()); 

和我得到的错误是Unable to connect to the given host。用户拥有所有特权和权利。

+2

是您的服务器可从您的计算机访问?特别是MYSQL服务器端口? – Fender

+0

尝试从终端手动连接,这将指示问题出在哪里。 – lynks

回答

19

大多数默认安装的MySQL只会监听本地计算机。

请在服务器上查找my.cnf中的bind-address设置,并确保它正在侦听您的目标IP地址。您可能还需要确保skip-networking不是开启!

或者(!少安全)以下将它设置为监听所有地址 - 本地和远程:

bind-address = 0.0.0.0 
+0

感谢大家的帮助,让我尝试这一切,并相信这将解决我的问题 – Frank

3

尝试添加用户(USER-NAME)允许从IP连接:

mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY "PASSWORD"; 

USER-NAME是(如'widor') IP是远程连接的公共IP地址(如'195.xyz')

当然,限制您想要授予的权限(ALL PRIVILEGES可能不是你的选择)

+0

6年后,这已经超级有用,我已经正确设置了一切,只是没有让用户访问我需要的一切。 – Craig

2

在你尝试使用PHP todo之前。打开你的终端或控制台,然后输入以下内容:

$的mysql -u用户名-h x.xx.xx.x -p

然后输入密码

或Windows然后类型:

\路径\到\ -u的mysql.exe用户名-h x.xx.xx.x -p

然后输入您的密码

这会给你一个更详细的响应,以作为即将到来的认证问题。你可以100%确定你的IP地址的远程登录有效。如果它工作正常,那么你的PHP代码中的东西,你错过了。