2010-08-20 141 views
1

早安,MySQL错误1045次拒绝访问

我写了下面的代码块我的本地Windows 7 PC上,并试图运行它。不幸的是,我收到:

Connect Error (1045) Access denied for user 'dbuser'@'myhost(using password: YES) 

我已授予dbuser的插入,选择,更新,并使用本地主机都和%这个数据库模式执行。我可以从服务器上的命令行使用mysql -u dbuser -p。

下面的代码块:

<?php 
/* Set Variables */ 
$host="serveripaddress"; 
$db="dbname"; 
$username="dbuser"; 
$pass="pass"; 

/* Attempt to connect */ 
$mysqli=new mysqli($host,$username,$pass,$db); 
if (mysqli_connect_error()){ 
die('Connect Error (' . mysqli_connect_errno() . ') ' 
. mysqli_connect_error()); 
echo 'Success... ' . $mysqli->host_info . "\n"; 

$mysqli->close(); 

} 
?> 

我难以理解上面的代码块是否是导致我的错误,或是否有需要在服务器上做了什么。任何人都可以提出一些调查领域吗?

感谢, 希德

+0

Doublechecked host? – 2010-08-20 16:33:29

+0

是的。我重置dbuser密码,无济于事。在我的$ host变量中使用服务器名称而不是IP地址会更好吗? – SidC 2010-08-20 16:49:09

回答

1

确保,如果您使用的是在MySQL中GRANT一个主机名,MySQL能够妥善解决主机名您从连接的IP。

举例来说,如果你这样做

GRANT blah ON *.* to [email protected] 

你要记住,MySQL将看不到“某”,它会看到一个IP地址。它必须进行反向查找才能获得主机名,如果IP没有反向映射,或者映射到完全不同的东西,MySQL将不会授予访问权限。

除非您可以保证反向映射稳定,否则最好在MySQL中使用远程访问帐户的IP地址。

+0

我的授权声明是'dbuser'@'%'我的意图是dbuser将是Web应用程序用来执行SQL命令的服务帐户。因此,我不想限制自己任何特定的主机名称。这是正确的方法吗? – SidC 2010-08-20 17:27:02

+0

这会让该帐户对任何可以连接服务器的主机开放,这可能会导致暴力破解密码。最好永远不要留下数据库帐户,不管它的权限多么有限,这么宽敞。 – 2010-08-20 21:39:54

+0

感谢您的帮助。事实证明,我们在服务器上遇到了一个DNS问题:(我们在几个小时内应该是黄金的。) – SidC 2010-08-22 08:11:54

1
<?php 
/* Set Variables */ 
$host="127.0.0.1:3306"; 
$db="dbname"; 
$username="dbuser"; 
$pass="pass"; 

/* Attempt to connect */ 
$mysqli=new mysqli($host,$username,$pass,$db); 
if (mysqli_connect_error()){ 
    die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());  
} 
else 
{ 
echo 'Success... ' . $mysqli->host_info . "\n"; 
$mysqli->close(); 
} 

?> 

首先,为您的if/else语句添加这些大括号。其次,尝试对IP进行硬编码。我只是将IP设置为一个变量(没有工作),然后对它进行硬编码,工作得很好。

+0

感谢您将if/else括号引起我的注意。我做了更改,然后尝试使用“我的服务器IP地址”而不是在mysqli语句中的$ host,并且收到相同的错误:( – SidC 2010-08-20 17:55:48

+0

也许尝试连接到主机而不通过$ db参数,同时检查数据库名称,我知道在我的服务器上,名称有一个前缀附加到他们。所以它会像'44536_mydatabase'而不是'mydatabase' – Elxx 2010-08-20 18:18:11

相关问题