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


Remote access to MySQL EC2 Instance for PHP application on non AWS server

我正在开发一个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.

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

任何帮助将不胜感激!

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

  2. 另一个错误消息与 mysql 无关。您正在发出跨域 ajax 请求。默认情况下,浏览器会阻止此操作。最近的浏览器允许您设置 Access-Control-Allow-Origin 标头以允许跨域请求。