Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ClearDB在Heroku上设置Grails 2.3.5应用程序时出现问题_Grails_Heroku_Cleardb - Fatal编程技术网

使用ClearDB在Heroku上设置Grails 2.3.5应用程序时出现问题

使用ClearDB在Heroku上设置Grails 2.3.5应用程序时出现问题,grails,heroku,cleardb,Grails,Heroku,Cleardb,我正在Heroku服务器上安装Grails 2.3.5应用程序,当tomcat启动时,我不断遇到以下错误: Caused by: java.sql.SQLException: Driver:com.mysql.jdbc.Driver@5a7359fe returned null for URL:jdbc:h2:mem:grailsDB;MVCC=TRUE;LOCK_TIMEOUT=10000 我没有使用h2作为数据库。我想使用ClearDB。我的环境变量看起来都是正确的,DataSo

我正在Heroku服务器上安装Grails 2.3.5应用程序,当tomcat启动时,我不断遇到以下错误:

    Caused by: java.sql.SQLException: Driver:com.mysql.jdbc.Driver@5a7359fe returned null for URL:jdbc:h2:mem:grailsDB;MVCC=TRUE;LOCK_TIMEOUT=10000 
我没有使用h2作为数据库。我想使用ClearDB。我的环境变量看起来都是正确的,DataSource.groovy中的所有内容看起来都是正确的。我甚至将连接字符串设置为硬编码,看看这是否会有所不同。娜达

    production {
        datasource {
            dbCreate = "create-drop"
            url = "jdbc:mysql://us-cdbr-east-05.cleardb.net/heroku_5a952ab6aXXXXXXX?reconnect=true"

            username = "XXXXX"
            password = "xxxxx"
        }
    }
很明显我错过了什么,但我看不到什么。
生产设置从哪里获取h2连接字符串

您没有显示完整的
DataSource.groovy
文件,但它的顶部可能有H2驱动程序(
drivercassname=“org.H2.driver”
)。其中的值为默认值,特定于环境的块将合并到其中以创建最终设置。您可以在
生产
块中覆盖该选项

production {
   datasource {
      dbCreate = "create-drop"
      url = "jdbc:mysql://us-cdbr-east-05.cleardb.net/heroku_5a952ab6aXXXXXXX?reconnect=true"

      username = "XXXXX"
      password = "xxxxx"

      driverClassName = 'com.mysql.jdbc.Driver'
      dialect = org.hibernate.dialect.MySQL5InnoDBDialect
   }
}

此外,在使用MySQL时,应该始终指定方言。Grails在大多数情况下都能自动检测方言,但无法确定您使用的是MyISAM还是InnoDB,因此它默认为使用为整个服务器配置的默认引擎类型的方言。较新版本的MySQL默认为InnoDB,在任何版本中都可以轻松更改,但如果不更改,或者更改为较旧版本,则最终将使用非事务性MyISAM表。指定方言可确保应用程序使用正确的表类型。

您不会显示完整的
DataSource.groovy
文件,但它的顶部可能有H2驱动程序(
drivercassname=“org.H2.driver”
)。其中的值为默认值,特定于环境的块将合并到其中以创建最终设置。您可以在
生产
块中覆盖该选项

production {
   datasource {
      dbCreate = "create-drop"
      url = "jdbc:mysql://us-cdbr-east-05.cleardb.net/heroku_5a952ab6aXXXXXXX?reconnect=true"

      username = "XXXXX"
      password = "xxxxx"

      driverClassName = 'com.mysql.jdbc.Driver'
      dialect = org.hibernate.dialect.MySQL5InnoDBDialect
   }
}

此外,在使用MySQL时,应该始终指定方言。Grails在大多数情况下都能自动检测方言,但无法确定您使用的是MyISAM还是InnoDB,因此它默认为使用为整个服务器配置的默认引擎类型的方言。较新版本的MySQL默认为InnoDB,在任何版本中都可以轻松更改,但如果不更改,或者更改为较旧版本,则最终将使用非事务性MyISAM表。指定方言可确保应用程序使用正确的表类型。

我找到了问题的原因。 数据源的代码块在源中有小写的“s”。它应该是数据源,而不是数据源

如果缺少此块,则默认为名为“grailsDB”的h2数据库。我在任何地方都找不到这个文档,因此我感到很困惑


检查您的案例我找到了问题的原因。 数据源的代码块在源中有小写的“s”。它应该是数据源,而不是数据源

如果缺少此块,则默认为名为“grailsDB”的h2数据库。我在任何地方都找不到这个文档,因此我感到很困惑


检查您的案例

不。在我的数据源块中,我指定了mysql驱动程序。我甚至将driverClassName添加到生产块中。同样的错误,不。在我的数据源块中,我指定了mysql驱动程序。我甚至将driverClassName添加到生产块中。同样的错误。