警告:mysqli_connect():( HY000/1045):用户'用户名'@'localhost'拒绝访问(使用密码:YES)

28 php mysql database localhost phpmyadmin

警告:mysqli_connect():( HY000/1045):第6行的C:\ Users\xampp\htdocs\PHP_Login_Script\config.php中的用户'用户名'@'localhost'(使用密码:YES)拒绝访问

警告:mysqli_real_escape_string()要求参数1为mysqli,第10行的C:\ Users\xampp\htdocs\PHP_Login_Script\login.php中给出布尔值

警告:mysqli_real_escape_string()要求参数1为mysqli,布尔值在第11行的C:\ Users\xampp\htdocs\PHP_Login_Script\login.php中给出

警告:mysqli_query()要求参数1为mysqli,第15行的C:\ Users\xampp\htdocs\PHP_Login_Script\login.php中给出布尔值

警告:mysqli_fetch_array()期望参数1为mysqli_result,在第16行的C:\ Users\xampp\htdocs\PHP_Login_Script\login.php中给出null

警告:mysqli_num_rows()期望参数1为mysqli_result,在第19行的C:\ Users\xampp\htdocs\PHP_Login_Script\login.php中给出null

即使我的配置文件是这样的,我在localhost上也会收到此错误:

<?php

    define("DB_HOST", "localhost");
    define("DB_USER", "root");
    define("DB_PASSWORD", "");
    define("DB_DATABASE", "databasename");

    $db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

?>
Run Code Online (Sandbox Code Playgroud)

这曾经有用,但现在已不复存在了.这段代码有问题还是现在不能正常工作?是我正在进行的教程.

Ign*_*ams 17

用户名,主机和密码的组合不允许连接到服务器.验证服务器上的权限表(如果需要,重新加载授权)以及您正在连接到正确的服务器.

  • 你的服务器说不然. (8认同)
  • 确保您的密码没有特殊字符,只保留一个普通密码(例如:12345),它将起作用.这是我见过的最奇怪的事情.我花了大约2个小时来搞清楚这一点. (6认同)
  • @Sathya 是对的。不要使用 cpanel 的生成密码的方法 - 显然一些特殊字符不起作用。我花了同样的 2 个小时 - 然后我找到了上面的评论...... (4认同)

hoo*_*gan 13

如果您正在运行wamp update

define("DB_HOST", "localhost");
Run Code Online (Sandbox Code Playgroud)

给你的机器ip地址(我的是192.168.0.25);

define("DB_HOST", "192.168.0.25");
Run Code Online (Sandbox Code Playgroud)

您可以通过在控制台中键入ipconfig或在mac/linux上键入ifconfig在窗口中找到它


小智 8

mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);

使用DB_HOST而不是DB_SERVER

  • 在问题中,用户传递了错误的常量名称。 (2认同)

Sat*_*hya 7

确保您的密码没有特殊字符,只保留一个普通密码(例如:12345),它将起作用.这是我见过的最奇怪的事情.我花了大约2个小时来搞清楚这一点.

注意:下面提到的12345是您的普通密码

GRANT ALL PRIVILEGES ON dbname.* TO 'yourusername'@'%' IDENTIFIED BY '12345';
Run Code Online (Sandbox Code Playgroud)


hem*_*mar 6

查看代码您定义了DB_HOST并查询DB_SERVER.DB_USER和DB_USERNAME使用此代码

define("DB_SERVER", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");

$connect = mysqli_connect(DB_SERVER , DB_USER, DB_PASSWORD, DB_DATABASE);
Run Code Online (Sandbox Code Playgroud)


小智 5

我在这里修复了一些问题,这里定义的“DB_HOST”也应该是那里的DB_HOST,并且“DB_USER”也在那里被称为“DB_USER”,请始终检查代码,确保它们是相同的。

<?php
    define("DB_HOST", "localhost");
    define("DB_USER", "root");
    define("DB_PASSWORD", "");
    define("DB_DATABASE", "");

    $db = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
?>
Run Code Online (Sandbox Code Playgroud)