2011-10-24 21 views
0

每当我尝试连接数据库时,我都会收到此消息database select error .Access denied for user '<username>'@'localhost' to database '<database>'。我的网站是远程托管的。要连接到数据库,我connect.php是这样的:无法选择数据库(远程)

$host = 'localhost'; 
    $user = '<username>'; 
    $pass = '<password>'; 
    $db = '<database>'; 

    $conn = mysql_connect($host,$user,$pass) or die('Unable to connect to host '); 

    @mysql_select_db($db,$conn) or die('database select error .'.mysql_error()); 

我有交叉检查usernamepassword,其正确的,我已经给所有的权限给用户<username>

怎么回事?

+0

你说该网站托管远程;我们可以假设这意味着数据库与您的php代码不同吗? – jro

+0

不在同一台服务器上。我的意思是说它不在本地电脑,它的主机。对不起我的英文不好 – Nitish

+0

脚本是否首先上传到您的网站?如果你试图从本地机器上运行它,那么它可能不起作用。要么上传脚本并尝试它,要么启用远程连接,并将localhost更改为您的服务器地址。 –

回答

0

最有可能的情况是,托管数据库的服务器设置为拒绝来自任何不是来自白名单源的请求的连接。如果您正在共享托管计划(如Hostmonster,1 & 1等)计划中访问数据库,则尤其如此。

如果它不是一个共享的主机,你需要把“localhost”是服务器+ MySQL的端口的IP地址和端口号,

+0

谢谢泰森,我想我得到了答案。我的网站托管在共享主机上。这可能会导致问题。那么解决方案是什么? – Nitish

+0

@Nitish可悲的是,我无法给你一个确切的解决方案。它因您的托管服务的提供商而异。在网站的控制面板中应该有一些东西可以将您的工作站添加为授权设备;否则,请联系支持台。 –

+0

但我有一个网站在这个相同的目录中,我能够从同一设备访问该网站的数据库。我很困惑! – Nitish

0

试试这个

mysql_select_db($db,$conn) or die('database select error .'.mysql_error());