在非AWS服务器上远程访问MySQL EC2 Instance for PHP应用程序

时间:2013-02-01 18:52:55

标签: php mysql amazon-web-services amazon-ec2

我正在开发一个PHP应用程序,需要从我的机器(或任何IP)远程访问MySQL(EC2实例)。应用程序需要独立,这意味着如果隧道是必需的,那么应用程序需要能够做到这一点。目前我使用以下代码连接到MySQL:

$conn = mysql_connect( $serverName, $uid, $pwd) or die(print_r(mysql_error(), true));

// select database
$dbname='xxxxx';
mysql_select_db($dbname);

我尝试在AWS控制台的安全组中打开MySQL端口,并且已经开始提供对IP的访问权限。我知道EC2需要密钥才能访问,所以我想知道是否有任何函数允许我使用密钥来连接和查询数据,以及将这些数据返回到我的应用程序中以供使用。

以下是我目前收到的错误消息:

XMLHttpRequest cannot load /myapp.php? Origin null is not allowed by Access-Control-Allow-Origin.

似乎无法加载数据,奇怪的是我从文件中的数据库中获取了一些信息。不知何故,它无法以我想要的方式返回并处理信息。当同一个应用程序在localhost上时,它可以正常工作

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

  1. 您不需要使用密钥连接到mysql。对于mysql的ec2设置没有什么特别的,就像在传统环境中一样。为了安全起见,最好使用ssl连接(或SSH隧道)到mysql,如果它是远程的,通过互联网。

  2. 其他错误消息与mysql无关。您正在制作跨域ajax请求。默认情况下,浏览器会屏蔽此最近的浏览器允许您设置Access-Control-Allow-Origin标头以允许跨域请求。