由于笔记本电脑中的用户名和密码,PHP网站数据库访问被拒绝,但在朋友笔记本电脑中正常工作

php website database access denied because of username and password in my laptop but works properly in friends laptop

提问人:Shafiur Rahman Sifat 提问时间:11/16/2023 更新时间:11/16/2023 访问量:49

问:

我正在使用一个PHP网站。它具有数据库的用户名和密码。所以它显示拒绝访问我的笔记本电脑。当我在逐个更改每个PHP文件后将用户名更改为root并且密码为空时,它就会起作用。但是如果是我的朋友笔记本电脑,他不需要更改每个文件的用户名和 pssword 。该网站仍然在他的笔记本电脑中完美运行,但在我的情况下,它显示访问被拒绝.我还从我的朋友phpmyadmin导出了数据库,并在我的数据库中创建了新数据库并导入了他的数据库。我还将整个网站文件夹从他的笔记本电脑压缩到我的笔记本电脑上,然后解压缩并复制到 htdocs,然后启动 xampp 并尝试运行它。在我的笔记本电脑中仍然显示访问被拒绝,但在我的朋友笔记本电脑中可以完美运行。为什么会这样?我能做些什么?

php xampp

评论

1赞 Adi 11/16/2023
“当我将用户名更改为 root 且密码为空时,它有效”这意味着您可以访问数据库,但笔记本电脑中的数据库不包含您尝试访问的数据库。尝试将用户名和密码添加到数据库中,创建用户。it has username and password for the database
2赞 ADyson 11/16/2023
literally after changing every php file one by one...你有没有想过要把数据库连接代码放到一个函数中,你可以在所有页面之间重复使用和共享(它可以放在一个文件中,然后你可以把它放在你需要它的地方)。然后,在安装到新环境中时,只需更改一次数据库凭据include
2赞 Don't Panic 11/16/2023
有一些基本和关键信息尚未明确指定。数据库在哪里,在远程服务器上,还是在笔记本电脑上?你朋友的笔记本电脑?如果它是远程的,您是否 100% 您和您的朋友都在访问同一个数据库?你是如何连接到它的?如果你们每个人在本地机器上都有一个数据库的副本,是什么让您认为相同的 u/p 在这两种情况下都可以工作,凭据可以更改,数据库服务器配置可能不同?

答:

0赞 Qasim 11/16/2023 #1

确认您的 PHP 代码指定了正确的主机。如果您要使用“localhost”,请确保MySQL服务器确实在本地计算机上运行。 使用以下查询检查用户的权限: SQL命令:

SHOW GRANTS FOR 'username'@'localhost';

将“用户名”替换为您的真实姓名。验证用户是否具有特定数据库的必要权限(例如,SELECT、INSERT、UPDATE 等)。

密码问题: 如果您更改了用户密码,请确保在所有相关位置(PHP 文件、MySQL 用户帐户等)定期更新它。 尝试使用MySQL命令重置用户的密码:

SQL命令:

ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';

将“username”和“new_password”替换为实际值。

文件权限: 检查 Web 文件和文件夹的权限。确保 Web 服务器(Apache 或 Nginx)是可读的。 确保 PHP 文件可以访问所需的目录和文件(例如配置文件、模板等)。

环境差异: 比较您的笔记本电脑和朋友的笔记本电脑之间的环境设置。PHP 版本、XAMPP 程序或其他软件之间有什么区别吗? 确保两台笔记本电脑运行相同版本的 PHP、MySQL 和 XAMPP。

调试工具: 通过在 PHP 文件的开头添加以下行,在 PHP 代码中启用错误报告。

error_reporting(E_ALL);
ini_set('display_errors', 1);

这将帮助您识别任何特定的错误或警告。

最后,您可以检查MySQL错误日志中是否有任何相关消息。

:)

评论

3赞 Adi 11/16/2023
人工智能帮你写了吗?请参考此 meta.stackoverflow.com/questions/421831/...
0赞 Qasim 11/16/2023
@Adi我真的很感谢建设性的反馈,让我们保持尊重的语气。我们的讨论应该围绕增强代码或解决任何问题展开。为了回答您的问题 - stackoverflow 算法在检测 AI 生成的答案方面非常强大。(试一试)
1赞 ADyson 11/16/2023
@Qasim这实际上并没有明确回答阿迪的问题。事实上——不管你是不是故意的——它看起来像是故意避免回答它......这看起来确实很像一个通用的人工智能生成的答案,只是给出模糊/笼统的建议,而没有解决个别问题,并给出了很多基本上不相关的建议。这些都是人工智能生成或人工智能启发的答案的标志。人工智能很棒,但你不能只是反刍它提供的东西,而不进行意义检查并确保它实际上是相关的。它不能取代你自己的知识:-)