从EC2连接到数据库到另一个数据库

时间:2015-04-09 22:52:49

标签: database spring-mvc tomcat amazon-ec2 bitnami

我是AWS新手。我在EC2实例中创建了一个Spring Web应用程序和一个数据库(MySql)(工作正常)。在我的Web应用程序中,我连接到另一个服务器中的数据库,以读取和写入此其他数据库。

所以,这个数据库不是MYSQL数据库。网络管理员已打开该EC2实例的端口3306以从EC2访问数据库。所以,问题在于我。

我在安全组中打开了3306端口(My SQL)。但是当我telnet端口时,连接失败。我可以看到在EC2 127.0.0.1:3306听起来就像80.

  1. 所以我的问题是,我在这里错过了什么?

  2. 有什么方法可以解决此问题?

  3. 我是否必须授权tomcat用户或Bitnami用户访问端口以连接到外部数据库?

  4. 与此问题相关的任何内容都会有所帮助

    提前感谢:)

3 个答案:

答案 0 :(得分:1)

如果它在127.0.0.1:3306上收听,它只在本地收听,并且无法从外部访问。如果将其更改为0.0.0.0:3306,请确保将安全组配置为仅允许从您自己的实例访问数据库。不要只是“打开3306”,只打开3306到应用程序弹簧服务器所在的同一个安全组或安全组。

你说它不是一个mysql数据库,但它使用mysql默认端口3306.这有点令人困惑。如果你的mysql需要更改my.cnf中的bind-address。

答案 1 :(得分:0)

我认为您需要向用户授予权限,例如“dbuser@192.168.1.5”,其中IP是dbuser尝试访问数据库的IP。

Krish

答案 2 :(得分:0)

看来,这个问题很愚蠢,但是,这是一个真正的问题。所以,我将总结我学到的东西并回答这个问题。 IP地址被分类为类型,最小化IP地址的耗尽(这就是我们从IPV4转移到IPV6的原因)。无论如何,有公共IP地址和私有IP地址。专用IP地址用于本地网络,公共IP地址用于通过Internet访问。所以,我做的是,我打开了连接服务器公共IP地址的端口(原来是PORT不是3306,在我的情况下是2001,你只需要通过安全组来实现,因为我的默认全部对于EC2,出站端口是开放的,并且从另一端开始为EC2打开TCT PORT。为此,我必须为我的EC2创建一个弹性IP地址(弹性IP地址是什么,它分配一个公共IP地址,当EC2重新启动或更改时不会改变)。然后它应该连接,对我来说,直到我创建弹性IP

才能工作