【问题标题】:AWS LAMP Stack connection to MySQL Database using PHP IssuesAWS LAMP Stack 使用 PHP 问题连接到 MySQL 数据库
【发布时间】:2017-12-09 22:57:20
【问题描述】:

我一直在这几天试图让它发挥作用。我刚刚按照 AWS 教程在 Amazon LINUX 的 EC2 实例上安装了 LAMP 堆栈。我一直在尝试与它建立基本的联系。只是简单的插入语句,我不断收到这个错误:

服务器正在工作。我有一个可以工作的测试文件。

我的数据库已设置并准备就绪。它将收到一个 ID、一个用户名、一个密码和一个电子邮件地址。但是我无法连接到mysql。 我有: 1)设置用户并授予所有权限 2) 检查 my.cnf 文件。没有列出要更改的“绑定地址”,但我添加了一个只是为了检查。我添加了我的服务器 IP。仍然没有工作。 3) 安全组是开放的。我有 SSH、HTTP、HTTPS 和 MySQL 接受来自“任何地方”的入站连接。

这是我想要完成的简单任务:

<?php

$servername = "xx.xx.xxx.xx;
$username = "ec2-user";
$password = "112233445566";
$dbname = "db";


$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "INSERT INTO MyGuests (id, firstname, lastname, email) VALUES(1, Fake, User, fake3mail@gmail.com);

if ($conn->query($sql) === TRUE) {
    echo "Table MyGuests created successfully";
} else {
    echo "Error creating table: " . $conn->error;
}

$conn->close();
?>

我正在尝试完成的任务:连接到 MySQL 数据库并插入一行数据。

实际结果:错误和无法连接。

我已经在互联网上搜索了 DAYS 天,试图让它发挥作用。我到底在这里想念什么?!是否还有更多必须完成的配置?我已经尝试了我读过的每一件事,但它不起作用。

【问题讨论】:

  • 我相信您在同一个 EC2 实例上拥有整个 LAMP 堆栈。您是否尝试过使用 localhost 作为服务器名。
  • 我刚刚将其更改为 localhost,我也遇到了同样的问题。该文件的名称是 table.php。我是否正确假设连接的方式是像所有其他文件一样通过文件名进入公共 DNS 地址之后?例如:ec2-54-174-71-33.compute-1.amazonaws.com/table.php

标签: php mysql linux apache amazon-web-services


【解决方案1】:

当我转到此页面时,它正在运行,因此我假设您已解决该问题:ec2-54-174-71-33.compute-1.amazonaws.com。

对于您的数据库,将$servername 更改为"localhost"。无需进行 DNS 查找来解析您自己的系统。

如果您的 PHP 代码有问题(您在最后一条评论中遇到了问题),请查看您的 PHP.INI 文件。在此文件中将是您的错误日志的位置。查找行"error_log = " 此文件将存储您的PHP 程序(脚本)的错误。只需查看文件底部的最新错误消息即可。如果error_log没有配置,那就配置吧。

我在您的代码中看到的一个问题是您没有在字符串周围加上单引号。您的值应如下所示:VALUES(1, 'Fake;', 'User', 'fake3mail@gmail.com')

【讨论】:

  • 感谢您的回复。我已经修复了单引号问题。我也找到了错误日志。它指出:7] PHP Parse error: syntax error, unexpected 'Table' (T_STRING) in /var/www/htm l/table.php on line 18
  • 可能是因为您的 $sql 行没有结束引号来关闭字符串。
【解决方案2】:

我实际上弄清楚了发生了什么。显然你不能像我一样向 ec2-user (默认用户)授予权限。我创建了一个新的单独用户并授予该用户所有权限,现在它工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2019-05-03
    • 2019-09-13
    相关资源
    最近更新 更多