ec2 + tomcat + mysql访问被拒绝!

时间:2011-07-02 12:15:57

标签: java mysql tomcat amazon-ec2 amazon

我在一个ec2实例上运行tomcat6和mysql5,我无法从外部世界运行。

我在ec2的tomcat上的context.xml ...

<bean id="dataSource" class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
    <property name="url" value="jdbc:mysql://ec2-xx-xx-xxx-178.compute1.amazonaws.com:3306/data_dbo" />
    <property name="user" value="a_user" />
    <property name="password" value="a_password" />
</bean>

客户端context.xml

 <bean id="myService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
        <property name="serviceUrl" value="http://ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com:8080/MyService-services/remoting/thingServiceExporter"/>
        <property name="serviceInterface" value="com.things.services.MyService"/>
    </bean>

clinet错误......

Caused by: java.sql.SQLException: Access denied for user ''@'domU-xx-xx-xx-xx-xx-DB.compute-1.internal' (using password: NO)

我为我的用户设置了权限,但似乎没有使用我在tomcat数据源中设置的用户。我说这是因为客户端上的错误(用户''@拒绝访问)没有用户,没有密码。 我是否需要在ec2 上设置tomcat和mysql之间的东西,因为它似乎是使用内部dns来访问MySql?

如果我能提供任何其他信息,请与我们联系!

1 个答案:

答案 0 :(得分:1)

我发现了这个问题。我的persistance.xml有以下代码......

 <properties>
      <property name="hibernate.connection.username" value=""/>
      <property name="hibernate.connection.driver_class" value=""/>
      <property name="hibernate.connection.password" value=""/>
      <property name="hibernate.connection.url" value=""/>
    </properties>

不确定那里到底是怎么回事! persistance.xml中的设置必须覆盖我的Spring上下文文件中的设置。