带有Heroku(春季)的cleardb(mySQL)连接问题

问题描述 投票:0回答:1

我正在创建一个springboot应用程序,该应用程序的数据存储在mysql数据库中。我已使用cleardb作为附加组件并将该应用程序部署到Heroku。当我运行该应用程序(即heroku打开)时,主页(index.html)成功显示,因为它不需要访问mySQL数据库。但是,所有需要访问mySQL数据库的页面都不会显示,并返回以下错误:

发生意外错误(类型=内部服务器错误,状态= 500)。无法获取JDBC连接;嵌套的异常是com.mysql.cj.jdbc.exceptions.CommunicationsException:通信链接失败最近一次成功发送到服务器的数据包是在0毫秒之前。驱动程序尚未收到来自服务器的任何数据包。

这是我的一些代码:

Databaseconfig

@Configuration

公共类DatabaseConfig {

@Bean
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(DataSource dataSource) {
    return new NamedParameterJdbcTemplate(dataSource);
}

@Bean
public DataSource dataSource() {
    DriverManagerDataSource dataSource = new DriverManagerDataSource();
    dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
    dataSource.setUrl("jdbc:mysql://localhost/NBA");
    dataSource.setUsername("root");
    dataSource.setPassword("root");
    return dataSource;
}

}

pom.xml插件

<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>

database_url(heroku配置)

CLEARDB_DATABASE_URL: mysql://b05ee51c5eec59:[email protected]/heroku_f61b74207636b77?reconnect=true
DATABASE_URL:         'mysql://b05ee51c5eec59:[email protected]/heroku_f61b74207636b77?reconnect=true'

一些注意事项:

  • 我的application.properties文件当前为空。

  • 当我在localhost:8080上运行该应用程序时,它可以完美运行。

任何帮助,我们将不胜感激。

mysql spring heroku spring-jdbc cleardb
1个回答
0
投票

对于您的情况,您必须根据database_url(heroku config)更改dataSource配置:

dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://us-cdbr-iron-east-05.cleardb.net/heroku_f61b74207636b77?reconnect=true");
dataSource.setUsername("b05ee51c5eec59");
dataSource.setPassword("94a4e9eb");

我还建议您在application.properties中使用以下内容,而不要使用数据源bean:

spring.datasource.username=
spring.datasource.password=
spring.datasource.url=

也非常重要:在heroku中更改数据库密码,不要在互联网上写它

© www.soinside.com 2019 - 2024. All rights reserved.