【发布时间】:2015-03-30 07:07:26
【问题描述】:
警告:mysqli_connect(): (42000/1044): 第 4 行 ---.php 中的用户 '-----'@'localhost' 拒绝访问数据库 '----' 无法连接到 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 command denied to user ...” 所以,我打开了 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 中键入的值!
【问题讨论】:
-
可能是权限问题?
-
许可是什么意思?我已经写好了密码和用户名。
-
您在服务器上工作吗?还是在本地主机中?
-
在 ipage 服务器中。