警告: mysqli_connect((: (42000/1044(: 拒绝用户"-----"@'localhost' 访问第 4 行 ---.php 中的数据库"----"无法连接到 MySQL
$db = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die("Unable to connect to MySQL");
这就是我的联系方式。如果我从那里删除DB_NAME,我不会收到错误并连接数据库,但每当我添加DB_NAME时,我都会收到此错误。DB_NAME绝对是正确的,但我不明白为什么?顺便说一下,对于DB_HOST,我使用本地主机。
---解决---
我终于解决了这个问题。所以,对于那些有同样问题的人,我将解释一切。实际上,我决定在查询之前使用表名,并且mysqli给了我另一个错误,例如"INSERT命令被拒绝给用户..."因此,我打开了phpMyAdmin并将我的DB_USER更改为phpMyAdmin的数据库服务器部分中写入的名称。你会看到这样的东西;
Server: Localhost via UNIX socket
Server type: MySQL
Server version: 5.5.42-cll - MySQL Community Server (GPL)
Protocol version: 10
User: -HERE-
Server charset: UTF-8 Unicode (utf8)
所以你需要使用用户名,这是写在用户部分的。更改DB_USER后,我能够添加DB_NAME。基本上我遇到的所有问题(无法使用DB_NAME和无法使用sql命令(都引起了我的许可。
关键部分是;我正在使用DB_NAME,我用它来在我的服务器中创建数据库,它也让我连接到数据库,但正如我所看到的,它不是根。因此,如果您遇到"拒绝"错误,请确保检查您在mysqli_connect中输入的值!
@ mysqli_connect(hostname, username, password, database)
或
@mysqli_connect(hostname,username, password)
@ mysqli_select_db(true, database);
或
$con=mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno())
{
echo "Failed : mysqli_connect_error();
}
mysqli_select_db($con,"db");
如果您使用的是本地主机,请尝试此操作
<?php
$con = mysqli_connect("localhost", "root", "", "YOUR_DB_NAME");
if (mysqli_connect_error()) {
die ("Could not Connect");
}
?>
如果您在线执行此操作,请将localhost
替换为host_name
root
,username
""
替换为password
,最后是您的DB_Name
.我希望这能解决你的问题:)