gpt4 book ai didi

php - 使用 PHP 访问 mysql 数据库被拒绝,但可以使用 phpmyadmin 和命令行登录

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:09 26 4
gpt4 key购买 nike

炸掉那个服务器,重新启动。在这上面浪费了太多时间!

如果我遗漏了任何细节,请告诉我。花了大约一个星期的时间对此进行研究并尝试无济于事。

(第一次)为我即将举行的婚礼创建一个网站,我希望我的客人能够在网站上发表评论。我是一名专业的软件工程师,但不是 Web 开发人员,所以这是我尝试自学更多有关 php 和 perl 以及学习使用 Linux 的知识。

在 Amazon 托管的 Ubuntu 12.0.4 上安装 LAMP。遵循在线标准设置教程。 Apache2 与 PHP5。

创建了新的 MYSQL 用户(由于显而易见的原因更改了名称)user@localhost 和 user@% 以及密码。授予两者的所有权限(甚至在特定的数据库上),然后刷新。防火墙3306端口开放。 mysql 配置文件中的绑定(bind)地址设置为 0.0.0.0 或注释掉(都尝试过)。确保不要使用 --skip-networking 启动它。

当我在 web 上运行 mysql -u user -hlocalhost -p 以及 phpmyadmin 时,我可以很好地连接到 user@localhost。当我查询时会显示正确的权限(包括 GRANT),并且我已授予每个用户对我为该站点创建的数据库的完全访问权限。

现在我的问题是在使用 php 或 perl 时我无法从网页或在命令行上运行脚本(例如 sudo php script.php)连接到数据库。

这是我的 php 脚本失败的行,如果有人愿意,我可以发布 perl:

mysql_connect("localhost", "user", "password")or die( mysql_error());

无论我做什么,在运行脚本时都会出现此错误:

用户 'user'@'localhost' 的访问被拒绝(使用密码:YES)

同样的错误,每次都该死。

现在,因为我可以通过命令行和 phpmyadmin 使用相同的凭据登录,所以我必须假设这是我在服务器某处弄乱的设置。我不知道除了我已经拥有的东西之外还有什么要检查的,而且我已经阅读过的关于这个主题的数百个答案似乎没有帮助。如果有人能提供一些很棒的建议,我已经束手无策,打算丢弃整个服务器并重新开始。

或者,如果没有人对此有答案,我可以通过其他任何方式实现让用户能够向网站发表评论的最终目标吗?

最佳答案

您要在脚本中使用的用户应该同时拥有“@localhost”和“'@%'” - 看看这个人。 http://dev.mysql.com/doc/refman/5.1/en/adding-users.html这曾经让我很头疼。

关于php - 使用 PHP 访问 mysql 数据库被拒绝,但可以使用 phpmyadmin 和命令行登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18475577/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com