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

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

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

警告: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

即使我的configuration文件是这样的,我在本地主机上面得到这个错误:

<?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); ?> 

这曾经工作,但现在它不再。 这个代码有没有问题,还是现在不工作? 这是我正在工作的教程。

用户名,主机和密码的组合不允许连接到服务器。 validation服务器上的权限表(重新加载授权),并且连接到正确的服务器。

如果你正在运行wamp更新

 define("DB_HOST", "localhost"); 

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

 define("DB_HOST", "192.168.0.25"); 

你可以通过在你的控制台中inputipconfig或者在mac / linux上使用ifconfig来在窗口上find它

mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);

使用DB_HOST而不是DB_SERVER

看你的代码你定义了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); 

你可以定义为DB_USER,但是可以用作DB_USERNAME。 另外PHP说用户名@ localhost无法访问。 不是root @ 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); ?> 

导致此消息的唯一错误是:

  1. 你正在定义一个DB_USER但是你正在调用DB_USERNAME

下次请多加小心。

对于一个入门级的程序员来说,要开始使用PHP进行编码,而不是使用他或她不太了解的东西,那更好。

仅作为build议,请尝试使用(第一次)代码更无处不在。

例如:不要使用define()语句,尝试使用variables声明作为$db_user = 'root';

有一个很好的经验:)

确保你的密码没有特殊的字符,只是保持一个简单的密码(例如:12345),它将工作。 这是我见过的最奇怪的事情。 我花了大约2个小时来解决这个问题。

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

 GRANT ALL PRIVILEGES ON dbname.* TO 'yourusername'@'%' IDENTIFIED BY '12345'; 

定义参数时出现错字错误,将DB_HOST更改为DB_SERVER ,将DB_USER更改为DB_USERNAME

 <?php define("DB_SERVER", "localhost"); define("DB_USERNAME", "root"); define("DB_PASSWORD", ""); define("DB_DATABASE", "databasename"); $db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE); ?> 

使用AWS RDS MySQL,我也遇到了同样的问题。 刚才在这里回答了类似的问题 。 看了各种各样的消息来源,但是就这个话题来说,几乎都没有答案。 虽然这个线程帮助我,考虑到更新服务器上的主机名。 访问您的SSH并按照以下步骤操作:

 cd /etc/ sudo nano hosts 

现在,在这里添加您的主机名:例如:

 127.0.0.1 localhost 127.0.0.1 subdomain.domain.com [if cname redirected to endpoints] 127.0.0.1 xxxxxxxx.xxxx.xxxxx.rds.amazonaws.com [Endpoints] 

现在,configurationconfig/database.php如下:

 $active_group = 'default'; $query_builder = TRUE; $db['default'] = array( 'dsn' => '', 'hostname' => '35.150.12.345', 'username' => 'user-name-here', 'password' => 'password-here', 'database' => 'database-name-here', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => TRUE, 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE ); 

其中35.150.12.345是您的IPv4公共IP ,位于ec2-dashboard > Network Interfaces > Description : RDSNetworkInterface >> IPv4 Public IP('35 .150.12.345')。

注意:请注意,只有IPV4将在“主机名”选项下工作。 主机名,cname,域将输出数据库连接错误。

上面的问题已经被回答了,只是为了让你感觉舒服的使用全部四个string同时在一个连接

 <?php define("DB_HOST", "localhost"); define("DB_USER", "root"); define("DB_PASSWORD", ""); define("DB_DATABASE", "databasename"); $db = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE); // you could test connection eventually using a if and else conditional statement, // feel free to take out the code below once you see Connected! if ($db) { echo "Connected!"; } else { echo "Connection Failed"; } ?> 

我有这个错误尝试连接到一个不同的用户比我设置限制访问的根。

在MySQL中,我将设置与主机%用户MofX ,它不会连接。

当我将用户的主机改为127.0.0.1 ,如'MofX'@127.0.0.1',它工作。

尝试

 define("DB_PASSWORD", null); 

那些警告尝试

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

但我会build议你设置一个root密码

你有两个连接在同一时间吗? 如果是这样,每次你不需要closures。

 $db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE); Put " DB_HOST " instead of " DB_SERVER " also put " DB_USER " Instead of " DB_USERNAME " 

比它工作得很好!

尝试改变:

 define("DB_SERVER", "localhost"); 

对此:

 define("DB_SERVER", "127.0.0.1");