我正在將我的應用程序移動到AWS ElasticBeanStalk,並花費無數個小時試圖讓我的數據庫連接工作,我反覆失敗。Tomcat,Hibernate,ElasticBeanStalk,RDS,MySql數據庫連接
第一次嘗試,
我目前在使用,我想繼續使用現有的RDS數據庫。我嘗試使用普通的舊jdbc連接來連接它,如下所示。
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://masdfwe.czwweehqejmbr.us-east-1.rds.amazonaws.com:3306/project</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">xxxxx</property>
但在日誌中發現以下異常。
產生的原因:java.sql.SQLException中:在java.lang.DriverManager中3306 /項目 :找到了JDBC沒有合適的驅動程序:MySQL的://masdfwe.czwweehqejmbr.us-east-1.rds.amazonaws.com .getConnection(DriverManager.java:596) 在java.sql.DriverManager.getConnection(DriverManager.java:187) 在org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:192) at org.hibernate.internal.AbstractSessionImpl $ NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:278) at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297) ... 125更多
mysql驅動程序是在lib目錄中的deff,所以我不知道爲什麼我看到這個異常。
我需要創建一個JNDI連接嗎?如果是這樣,我該如何改變ElasticBeanStalk上tomcat7中的配置文件?我想ssh進入ec2實例,或者我做到ElasticBeanStalk實例嗎?
我會在我的hibernate.cfg.xml
文件中使用類似的東西嗎?
<property name="hibernate.connection.datasource">java:comp/env/jdbc/project</property>
的web.xml
<resource-ref>
<description>MyDatabase Description</description>
<res-ref-name>jdbc/project</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
我只是不知道在哪裏,什麼我假設是配置。任何幫助將不勝感激,我很困惑。
在此先感謝。
是的,我也不明白,我開始認爲這是一個防火牆問題,但我對aws肯定不夠了解。我沒有驅動程序的newInstance,我使用的是hibernate.cfg.xml。 –
不,從日誌消息我會說這不是防火牆問題。在某些情況下,您需要更新RDS實例的安全組的防火牆規則,以允許來自Elastic Beanstalk應用程序的連接。但是,在這種情況下你會得到的錯誤更多的是超時,因爲你將無法得到主機的響應......你確定你的JDBC.jar在/ WEB-你的.war文件的INF/lib? – joker
可以在/ WEB-INF/lib中找到mysql-connector-java-5.1.27.jar,並且確實已將RDS配置爲使用我的EC2安全組。我可以在連接到本地數據庫時更改JDBC URL並在本地運行應用程序。也許我錯了,希望你能確認,但我的印象是,我的hibernate.cfg.xml包含我的jdbc連接信息和lib目錄中的mysql jar應該是所需的所有這些才能正常工作,對吧?或者您是否知道是否必須對tomcat或Beanstalk GUI進行任何手動配置,如果需要,那麼需要在EC2實例中進行這些更改。 –