在另一台服务器上连接MySQL

时间:2010-09-21 11:56:34

标签: php mysql mysql-error-1045

我有两台服务器(虚拟机 - 我可以远程连接到这些服务器) - 服务器1和服务器2.

在服务器1上我保留了我的网页,在服务器2上,我保留了数据库。

我目前正在尝试从服务器1连接到服务器2上的数据库。

这是我的php代码:

<?php
            $dbhost = 'xxx.xx.xx.xx:xxxx';
            $dbuser = 'xxxxxx';
            $dbpass = 'xxxxxx';

            $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql' . mysql_error());


            $dbname = 'database';
            mysql_select_db($dbname);
?>

这是我尝试连接时收到的错误消息:

Access denied for user 'xxxxxx'@'server1' (using password: YES)

我觉得有点令人费解的是,@ server1认为我正在尝试连接服务器2.有人能提供任何见解吗?

谢谢

PS:他们都在Windows 2008上

4 个答案:

答案 0 :(得分:3)

在确定是否授予访问权限时,MySQL会考虑连接客户端的主机名。可以允许给定的用户名从托管数据库的同一台计算机(即localhost)登录,但在从远程系统使用时不允许连接。

在您的情况下,听起来用户'xxxxxx'无权从'server1'连接。您可以从所有主机('%')授予用户'xxxxxx'登录权限。但是,将该帐户的登录权限限制为特定主机('server1')或主机范围('%。mydomain.com'或'144.155.166.0/255.255.255.0')将更安全使用。

有关MySql身份验证过程的这方面的更多信息,请参阅http://dev.mysql.com/doc/refman/5.0/en/connection-access.html

答案 1 :(得分:2)

“用户'xxxxxx'@'server1'拒绝访问”表示server1无权访问server2。您需要在server2上添加新用户,该用户可以从server1(hostname:server1);

连接

答案 2 :(得分:2)

您需要为该计算机授予权利

检查here

答案 3 :(得分:2)

删除此用户并使用'xxxxxx'@'%'创建一个新用户。在两台服务器上执行此操作 @'%'表示用户可以从任何地方连接。