【发布时间】:2013-07-13 07:57:46
【问题描述】:
我有这行代码:
$mysqli = new mysqli("localhost", "user", "pass", "db");
我将 XAMPP 用于 Apache 和 MySQL。如果我使用上面的行,则会引发以下错误:
Warning: mysqli::mysqli(): (HY000/1045): Access denied for user 'user'@'localhost' (using password: YES) in C:\xampp\htdocs\xo\php\connect.php on line 2
Failed to connect to MySQL: (1045) Access denied for user 'user'@'localhost' (using password: YES)
Warning: main(): Couldn't fetch mysqli in C:\xampp\htdocs\xo\php\connect.php on line 6
如果我用 127.0.0.1 替换 localhost 也是一样的(我试过了)。但是,如果我使用我的内部网络 IP(在本例中为 192.168.1.101)而不是 localhost,它会成功连接。
【问题讨论】:
-
您尚未在 MySQL 服务器上提供对
user@localhost的访问权限,但您已经为user@192.168.1.101提供了访问权限。只需添加额外的权限 -
访问通配符显然不允许 localhost 或 127.0.0.1。它要么是本地的,要么是外部的,而不是两者兼而有之。设置对 localhost 的访问解决了这个问题。