Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

aplikasi web spring-boot kehilangan kemampuan untuk terhubung ke MySQL / RDS setelah beberapa saat

Jika Anda menggunakan konfigurasi otomatis untuk menentukan koneksi RDS dari file properti seperti ini:

cloud.aws.rds.testdb.password=testdbpwd
cloud.aws.rds.testdb.username=testdbuser
cloud.aws.rds.testdb.databaseName=testdb

konfigurasi otomatis sumber data boot musim semi tidak akan berfungsi bahkan Anda meletakkan ini (atau konfigurasi sumber data Tomcat) ke file konfigurasi Anda:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.test-on-borrow: true
spring.datasource.validation-query: SELECT 1 FROM DUAL
spring.datasource.log-validation-errors: true

Saya rasa inilah alasan mengapa Anda tidak dapat memvalidasi koneksi Anda di kumpulan, sebelum menggunakannya.

Anda perlu mengganti metode postProcessAfterInitialization untuk menyetel properti kumpulan kacang TomcatJdbcDataSourceFactory seperti ini:

@Component
public class PoolConfiguration implements BeanPostProcessor {

@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    if (bean instanceof TomcatJdbcDataSourceFactory) {
        TomcatJdbcDataSourceFactory tomcatJdbcDataSourceFactory = (TomcatJdbcDataSourceFactory) bean;
        tomcatJdbcDataSourceFactory.setTestOnBorrow(true);
        tomcatJdbcDataSourceFactory.setTestWhileIdle(true);
        tomcatJdbcDataSourceFactory.setValidationQuery("SELECT 1");
    }
    return bean;
}
}

Saya tidak dapat menemukan solusi lain untuk ini. Omong-omong, ini mungkin bug spring-cloud-aws-autoconfigure paket.

Semoga Sukses!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah saya memerlukan koneksi php mysql di setiap fungsi yang menggunakan database?

  2. MySQL Query - Catatan antara Hari Ini dan 30 Hari Terakhir

  3. Bagaimana cara mendapatkan persentase total ketika kueri memiliki GROUP BY?

  4. mendapatkan nama induk kategori anak dengan satu kueri di mysql

  5. Masalah menggunakan MySQL dengan AWS Lambda di Python