2012-01-16 129 views
0

我试图从服务器B连接到服务器A上的MYSQL数据库。我们正在使用的托管公司拥有服务器A和服务器B.这是我第一次尝试在外部数据库连接。将php-sql连接失败缩小到服务器设置?

我写了下面的PHP代码尝试连接到MySQL数据库服务器A从服务器B的代码看起来像我在Google搜索方面来连接外部MySQL数据库大多数其他代码..

$IPAddress_O_fServer_A = 'XXX.XX.XX.XXX'; 
$Server_A_DB_Pass = 'P-WORD'; 
$Server_A_DB_User = 'U-NAME'; 
$con = mysql_connect($IPAddress_Of_Server_A, $Server_A_DB_User, $Server_A_DB_Pass); 

现在,当这个代码在服务器B上执行,我得到这个错误:

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'XXX.XX.XX.XXX' (4) in /var/www/web12/web/dev/front-end.php on line 10 
Could not connect: Can't connect to MySQL server on XXX.XX.XX.XXX' (4) 

...其中,10号线是mysql_connect()函数调用。

有没有人看到这段代码有什么问题? 如果连接无法正常工作,那么可以肯定地说服务器的外部连接权限或其他设置必须存在问题?

谢谢!

+0

(1)http://dev.mysql.com/doc/refman/5.5/en/access-denied.html(2)http://www.cyberciti.biz/tips/how-do -i-enable-remote-access-to-mysql-database-server.html – 2012-01-16 19:24:17

+0

在本地主机上测试时用户U-NAME是否可以连接数据库? – BartekR 2012-01-16 19:24:59

+0

可能是一个安全的服务器,不接受本地主机之外的连接... – 2012-01-16 19:40:40

回答

0

首先,我会看this,并确保您的系统已配置为允许远程访问。其次,用户名“U-NAME”实际上是“U-NAME @ localhost”,并且将具有如此设置的权限。例如,考虑以下GRANT语句。

GRANT SELECT * 
    ON foo.bar 
    TO 'U-NAME'@'localhost' 

用户名“U-NAME”有权从数据库foo,表格栏中选择条目,但它仅限于localhost访问。为了允许远程访问,您必须授予与以下内容类似的权限。

GRANT SELECT * 
    ON foo.bar 
    TO 'U-NAME'@'xx.xx.xx.xx' 
相关问题