警告: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); ?>
导致此消息的唯一错误是:
- 你正在定义一个
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");