我有这行代码:
$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,它会成功连接。
答案 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);