“连接失败:用户‘root’@‘localhost’(使用密码:YES)的访问被拒绝”来自php函数

“连接失败:用户‘root’@‘localhost’(使用密码:YES)的访问被拒绝”来自php函数

为了与MySQL数据库进行交互,我编写了php网页使用的一些函数。当我在服务器上测试它们时,我会得到以下错误:

"Connect failed: Access denied for user 'root'@'localhost' (using password: YES)"

我能够在我的PC上使用它们(使用XAMPP),我可以使用服务器中的命令行在数据库的表中导航。但是,网页无法连接。我检查了密码,但没有结果。这是正确的(否则我无法从命令行登录到MySQL)。

该函数的调用如下:

$conn = new mysqli("localhost", "root", "password", "shop");

我必须在我的服务器上设置什么东西吗?谢谢

编辑:PHP版本5.3.3-7+挤压1 MySQL版本:5.1.49-3,都在Debian上


慕后森
浏览 3785回答 3
3回答

肥皂起泡泡

我以这样的方式解决了问题:我使用root用户名登录。mysql -u root -p -h localhost我创建了一个新用户CREATE USER 'francesco'@'localhost' IDENTIFIED BY 'some_pass';然后我创建了数据库CREATE DATABASE shop;我授予这个数据库的新用户特权。GRANT ALL PRIVILEGES ON shop.* TO 'francesco'@'localhost';然后我退出根目录并登录新用户。quit;mysql -u francesco -p -h localhost我用脚本重建了我的数据库source shop.sql;就这样.。现在,从php开始工作,调用没有问题。 $conn = new mysqli("localhost", "francesco", "some_pass", "shop");谢谢你的时间:)

慕森卡

DB中是否有root@localhost的用户帐户条目?在MySQL中,可以通过主机设置不同的用户帐户权限。可能有几个具有相同名称的不同帐户与它们连接的主机相结合。最常见的是root@127.0.0.1和root@localhost。它们可以具有不同的密码和权限。确保root@localhost存在并具有您期望的设置。根据你的解释,我敢打赌这就是问题所在。从另一台PC连接使用与root@localhost不同的帐户,我认为命令行使用root@127.0.0.1连接。
打开App,查看更多内容
随时随地看视频慕课网APP