我已经在这几天试图让这个工作。我只是按照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数据库并插入一行数据。
实际结果:错误和无法连接。
我已经在网上搜了好几天了,现在正想办法让它工作。我到底错过了什么?!还有更多的配置需要做吗?我读过的每一件事都试过了,但都不管用。
最佳答案
当我转到这个页面时,它正在工作,所以我假设您修复了这个问题:ec2-54-174-71-33.compute-1.amazonaws.com。
对于您的数据库,将$servername
更改为"localhost"
。不需要进行DNS查找来解析您自己的系统。
如果PHP代码有问题(从最后一条注释开始),请查看PHP.INI文件。在此文件中将是错误日志的位置。查找行"error_log = "
此文件将存储PHP程序(脚本)的错误。只需查看文件底部的最新错误消息。如果未配置错误日志,则对其进行配置。
我在代码中看到的一个问题是,字符串周围没有单引号。您的值应该如下:VALUES(1, 'Fake;', 'User', 'fake3mail@gmail.com')