早上好
我在本地 Windows 7 PC 上编写了下面的代码块并尝试运行它。不幸的是,我收到了:
Connect Error (1045) Access denied for user 'dbuser'@'myhost(using password: YES)
我已授予 dbuser Insert、Select、Update 和 Execute using localhost 和 % 用于此数据库模式。我也可以从服务器上的命令行执行 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();
}
?>
我很难理解是上述代码块导致了我的错误,还是需要在服务器上执行某些操作。谁能建议一些调查领域?
谢谢, 席德
最佳答案
确保如果您在 MySQL 中为 GRANT
使用主机名,MySQL 可以将该主机名正确解析为您连接的 IP。
例如,如果你这样做
GRANT blah ON *.* to user@somehost
您必须记住,MySQL 不会看到“somehost”,它会看到 IP 地址。它必须进行反向查找才能获得主机名,如果 IP 没有反向映射,或者映射到完全不同的东西,MySQL 将不会提供访问权限。
除非你能保证反向映射是稳定的,否则在MySQL中远程访问账户最好使用IP地址。
关于php - MySQL 错误 1045 访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3532868/