警告: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,我使用localhost。
--- ---解决
我终于解决了这个问题。所以,对于那些有同样问题的人,我会解释一切。实际上,我决定在查询之前使用表名,而不是mysqli给了我另一个错误,说" INSERT命令被拒绝给用户......"所以,我打开phpMyAdmin并将我的DB_USER更改为phpMyAdmin中的Database Server部分中编写的名称。你会看到这样的东西;
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,我曾经在我的服务器上创建数据库,它也让我连接到数据库,但我可以看到它不是根。所以,如果你有'#34;否认"错误,请确保检查您在mysqli_connect中输入的值!
答案 0 :(得分:0)
您可以使用
@ 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");
答案 1 :(得分:0)
如果您使用的是localhost,请尝试使用
<?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
{1}}。我希望这可以解决你的问题:)