2

吹走那台服务器,重新启动。在这上面浪费了太多时间!

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

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

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

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

当我在网络上运行 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 使用相同的凭据登录,所以我不得不假设这是我在服务器某处弄乱的设置。除了我已经拥有的东西以及我读过的关于该主题的数百个答案没有帮助之外,我不知道还有什么要检查的。如果有人能提供一些很棒的建议,我会束手无策,即将摧毁整个服务器并重新开始。

或者,如果没有人对此有答案,我还有什么其他方法可以实现让用户能够在网站上发表评论的最终目标?

4

2 回答 2

0

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

于 2013-08-27T21:20:05.597 回答
0

尝试这个:

    mysql_connect("127.0.0.1", "user", "password")or die( mysql_error());
于 2013-08-27T23:07:24.437 回答