【问题标题】:Driver:com.mysql.jdbc.Driver@75b3ef1a returned null for URL:jdbc for grails app on app engine驱动程序:com.mysql.jdbc.Driver@75b3ef1a 为 URL:jdbc 为应用程序引擎上的 grails 应用程序返回 null
【发布时间】:2017-05-29 04:13:00
【问题描述】:

按照此处描述的步骤将我的 grails 3.2.9 应用程序连接到 google-app-engine 灵活环境上的 google cloud-sql 实例

http://guides.grails.org/grails-google-cloud/guide/index.html#deployingTheApp

我的grails版本如下

==> grails -version | Grails 版本:3.2.9 | Groovy 版本:2.4.10 | JVM版本:1.8.0_131

我的 application.yml 如下所示

# tag::dataSourceConfiguration[]
dataSource:
    pooled: true
    jmxExport: true
    dialect: org.hibernate.dialect.MySQL5InnoDBDialect
environments:
    development:
        dataSource:
            dbCreate: create-drop
            url: jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
    test:
        dataSource:
            dbCreate: update
            url: jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
    production:
        dataSource:
            driverClassName: com.mysql.jdbc.Driver
            dbCreate: create-drop
            url: jdbc:cloudsql://google/{DATABASE_NAME}?cloudSqlInstance={INSTANCE_NAME}&socketFactory=com.google.cloud.sql.mysql.SocketFactory&user={USERNAME}&password={PASSWORD}&useSSL=false
            properties:

当我使用本地运行时

grails 运行应用程序

应用程序运行正常

我跑 ./gradlew appengineDeploy 进行部署并正确部署

但是当我尝试在浏览器中打开脚手架页面时,我在日志中看到以下错误

==> gcloud app 日志tail -s default

    ERROR --- [           main] o.h.engine.jdbc.spi.SqlExceptionHelper 

  : Driver:com.mysql.jdbc.Driver@75b3ef1a returned null for 

URL:jdbc:cloudsql://google/{DATABASE_NAME}?cloudSqlInstance=

{INSTANCE_NAME}&socketFactory=com.google.cloud.sql.mysql.SocketFactory&us
er={USERNAME}&password={PASSWORD}&useSSL=false

此外,在日志中还会看到以下错误

    ERROR --- [ Thread-16] .SchemaDropperImpl$DelayedDropActionImpl :

 HHH000478: Unsuccessful: alter table property drop foreign key 

FKgcduyfiunk1ewg7920pw4l3o9

HH 是否表明它正在生产环境中使用 h2 数据库?

请帮忙调试。

【问题讨论】:

    标签: google-app-engine grails groovy google-cloud-sql


    【解决方案1】:

    似乎与休眠有关的问题。此处讨论的 grails 的相同错误:

    https://hibernate.atlassian.net/browse/HHH-11470

    【讨论】:

      【解决方案2】:

      您正在使用 MySQL,因为您可以看到错误代码

      Driver:com.mysql.jdbc.Driver@75b3ef1a returned null for 
      

      您的问题是您需要使用您的特定详细信息配置 URL,将 {DATABASE_NAME} 更改为您的数据库名称

      您可以在http://guides.grails.org/grails-google-cloud/guide/index.html#dataSourceGoogleCloudSQL 的示例中查看如何替换

      【讨论】:

      • 是的。我确实用数据库的名称更改了 {DATABASE_NAME}。出于安全原因,我没有在此处粘贴该值。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多