我有两台服务器(虚拟机 - 我可以远程连接到这些服务器) - 服务器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上
答案 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'@'%'创建一个新用户。在两台服务器上执行此操作 @'%'表示用户可以从任何地方连接。