无法从aws ec2连接到mysql远程服务器


cant connect to mysql remote server from aws ec2

我是一个新手在aws和已经创建了一个ec2实例在ubuntu服务器与php, mysql和apache安装在那里我已经托管了一对html文件与其他脚本php文件。网站运行正常。我已经创建了一个web服务,它必须在不同的客户端中使用。这个web服务的目的是在一个远程数据库表中插入一些值。

a) www.abc.com/client/add.php返回成功,我可以看到db表中更新的值

上面的webservice在测试服务器上运行良好,但是当我在aws ec2上上传相同的文件集时,webservice给了我一个错误。

b) www.abc.com/client/add.php返回失败。我已经检查了db配置文件,远程主机的连接字符串是正确的。

我也面临着类似的问题,在整合短信api推送短信到消费者的手机。在测试服务器上,我的代码工作正常,短信被推送,但同一段代码在aws ec2上不起作用。

我怀疑,这与ec2安全组中的规则有关,因为它不能连接到远程mysql主机和短信网关。你们谁能帮我指定合适的规则吗?

目前我已经为入站规则分配了以下权限

  • 类型HTTP,端口80所有
  • 为所有设置Mysql端口3306
  • 所有
  • 所有流量
  • 类型SSh,端口22所有

我还需要分配任何出站规则吗?

首先感谢@bluto向我指出日志文件,在那里我能够看到错误并修复它们。我的入站和出站规则是合适的。从日志文件中,我确定了mysql_connect(): Access denied for user.

为了解决这个问题,我必须明确地在允许的主机部分分配主机IP地址。对于第二个问题,我的SMS api不工作,我在日志文件

中发现了错误

PHP致命错误:调用未定义方法mysqli_stmt::get_result().

为了解决这个问题,我知道mysqlnd需要执行Bind_result() &Fetch()在我的aws ubuntu服务器中丢失。

http://php.net/manual/en/mysqli-stmt.get-result.php

我必须通过以下命令安装mysqlnd。

apt-get install php5-mysqlnd

请记住,安装mysqlnd会破坏你的应用程序代码。为了使其工作,我在php.ini文件的末尾添加了以下行。php.ini文件的路径可以通过php.info()

的输出找到。

扩展= mysqlnd.so

安装成功后,我看到curl需要安装在服务器上,因为我得到了一个错误。我用下面的命令安装了它。确保安装完成后重新启动apache服务器

引用:

调用未定义方法mysqli_stmt::get_result

https://askubuntu.com/questions/386887/install-curl-ubuntu-12-04