4

我有这行代码:

$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,它会成功连接。

4

6 回答 6

3

试试这个:

$mysqli = new mysqli("localhost", "user", "pass", "db", 3306);
                                                        port
于 2014-02-17T10:57:32.017 回答
1

我得到了错误:

警告:mysqli_connect(): (HY000/1045): Access denied for user 'dinesh'@'localhost' (using password: YES) in C:\xampp.......

localhost用我的 IP 地址替换了它,它终于在 Windows 10 中工作了。

于 2016-04-29T20:48:42.127 回答
0

你的参数有问题

$mysqli = new mysqli($localhost, $user, $pass, $db);

$localhost, $user, $pass, $db (these params should be consistent)
于 2014-08-25T01:36:08.570 回答
0

从 php5 升级到 php7 后,同样的问题困扰了我 2 天,最后我发现这是因为在 php.ini 设置中,您还需要为 mysqli 定义套接字位置。原来的mysql在php5.5之后就被弃用了,所以升级后需要在mysql.default_socket之外添加mysqli.default_socket作为它的socket位置。

只需要确保以下行位于 php.ini :

mysqli.default_socket = /path to/mysql.sock mysql.default_socket = /path to/mysql.sock

于 2018-10-13T15:40:23.550 回答
-1

尝试以下(基于官方文档https://www.php.net/manual/en/mysqli.quickstart.connections.php的答案):

$mysqli = new mysqli("127.0.0.1", "user", "pass", "db");

于 2021-03-18T14:55:42.240 回答
-3

我认为应该是:

$mysqli = new mysqli($localhost, $user, $pass, $db);
于 2014-04-02T18:23:04.663 回答