Amazon RDS和Elastic Beanstalk连接 [英] Amazon RDS and Elastic Beanstalk connectivity

查看:236
本文介绍了Amazon RDS和Elastic Beanstalk连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

已经有几个线程讨论这个问题,并且我已经尝试了在
中讨论的实现建议 Elastic Beanstalk - >使用Grails的RDS连接错误


  • 我还打开了端口,接受来自我的EC2实例中ICMP,TCP和UDP的全部连接。

  • 我已经确认我的RDS和EC2实例在同一个区域(东部)
  • 我还在RDS默认安全组中添加了elasticbeanstalk-default安全组


  • 我已经在RDS CIDR设置中添加了本地计算机的IP地址,并且可以通过我的计算机上的SQLYog连接到RDS。




但是当我尝试从Elastic Beanstalk连接我的RDS实例时,出现以下异常:

 导致:java.net.Connection ctException:连接被拒绝在java.net.PlainSocketImpl.socketConnect处使用
(Native方法)在java.net.AbstractPlainSocketImpl.doConnect处使用
(AbstractPlainSocketImpl.java:310)在java.net.AbstractPlainSocketImpl处使用

at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
(AbstractPlainSocketImpl.java:176)在java.net.Socket.connect(Socket.java:546)
在java.net.Socket.connect(Socket.java:495)
在java.net.Socket。< init>( Socket.java:392)在java.net.Socket上
。< init>(Socket.java:235)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO。< init>(MysqlIO.java:293)
... 18 more

2011年6月1日上午5:12:41 org.apache.catalina.core.StandardContext startInternal
SEVERE:错误listenerStart
2011年6月1日上午5:12:41 org.apache.catalina.core.StandardContext startInternal
SEVERE:由于之前的错误,Context []启动失败
2011年6月1日上午5:12:41 org.apache.catalina.core.StandardContext listenerStop
SEVERE:将上下文销毁事件发送到监听器实例class org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener
org.springframework.beans.factory.BeanCreationException:创建名为.....
的bean时出错成功发送到服务器的最后一个数据包是0毫秒前。 )
at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run( FutureTask.java:166)
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)$ b $在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)

My DataSource .groovy参数如下。

 生产{
dataSource {
pooled = true
dbCreate =update//创建'create','create-drop','update'
url =jdbc:mysql:// [MyEndPoint]:3306 / *****
username =*****
password =*****
dialect = org.hibernate.dialect.MySQL5InnoDBDialect
properties {
validationQuery =SELECT 1
testOnBorrow = true
testOnRe turn = true
testWhileIdle = true
timeBetweenEvictionRunsMillis = 1000 * 60 * 30
numTestsPerEvictionRun = 3
minEvictableIdleTimeMillis = 1000 * 60 * 30
}
}
}


解决方案

我解决了它,很愚蠢的回答尽管如此。



我总是觉得(建议)在构建新的 WAR 文件是在生产环境中创建的,但事实并非如此。我必须进入项目属性并将活动grails环境设置更改为生产,并修复此问题。

简而言之,Amazon Web Services Elastic Beanstalk尝试连接到我的开发环境数据库localhost。


There are already several threads where this question is discussed, and I have already tried implementing suggestions discussed in Elastic Beanstalk -> RDS connection error using Grails.

  • I have also opened ports to accept connections from "All" for ICMP, TCP and UDP in my EC2 instance.

  • I have made sure that my RDS and EC2 instances are in the same zone (Eastern)

  • I have also added the "elasticbeanstalk-default" security group in RDS default security group

  • I have added my local machine's IP address in RDS CIDR settings, and I am able to connect to RDS through SQLYog from my machine.

BUT when I try to connect my RDS instance from Elastic Beanstalk I am getting the following exception

Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at java.net.Socket.connect(Socket.java:495)
at java.net.Socket.<init>(Socket.java:392)
at java.net.Socket.<init>(Socket.java:235)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:293)
... 18 more

Jun 1, 2011 5:12:41 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Jun 1, 2011 5:12:41 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [] startup failed due to previous errors
Jun 1, 2011 5:12:41 AM org.apache.catalina.core.StandardContext listenerStop
SEVERE: Exception sending context destroyed event to listener instance of class         org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener
 org.springframework.beans.factory.BeanCreationException: Error creating bean with name.....
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)

My DataSource.groovy parameters are as follows.

production {
    dataSource {
        pooled = true
        dbCreate = "update" // one of 'create', 'create-drop','update'
        url = "jdbc:mysql://[MyEndPoint]:3306/*****"
        username = "*****"
        password = "*****"
        dialect = org.hibernate.dialect.MySQL5InnoDBDialect
        properties {
            validationQuery = "SELECT 1"
            testOnBorrow = true
            testOnReturn = true
            testWhileIdle = true
            timeBetweenEvictionRunsMillis = 1000 * 60 * 30
            numTestsPerEvictionRun = 3
            minEvictableIdleTimeMillis = 1000 * 60 * 30
        }
    }
}

解决方案

I solved it, pretty foolish answer though.

I always felt (thought) that when building a new WAR file for a Grails project in NetBeans it is created in a "production" environment, but that was not the case. I had to go to the project properties and change "Active grails environment" setting to "production" and this fixed it.

In a nutshell Amazon Web Services Elastic Beanstalk was trying to connect to my development environment database "localhost".

这篇关于Amazon RDS和Elastic Beanstalk连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆