MySqli无法连接到localhost

时间:2013-07-15 12:39:32

标签: php mysqli xampp host

我有这行代码:

$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

如果我将localhost替换为127.0.0.1(我试过),它也是一样的。但如果我使用我的内部网络IP(在本例中为192.168.1.101)而不是localhost,它会成功连接。

6 个答案:

答案 0 :(得分:3)

试试这个:

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

答案 1 :(得分:1)

你的params问题

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

$localhost, $user, $pass, $db (these params should be consistent)

答案 2 :(得分:1)

我收到了错误:

  

警告:mysqli_connect():( HY000 / 1045):在C:\ xampp中,用户'dinesh'@'localhost'(使用密码:YES)拒绝访问

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

答案 3 :(得分:0)

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

只需确保以下行在php.ini中:

mysqli.default_socket = / mysql / sock的路径 mysql.default_socket = /mysql.sock的路径

答案 4 :(得分:-1)

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

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

答案 5 :(得分:-2)

我认为应该是:

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