在Grails中配置Mysql数据库时出错

时间:2011-07-15 07:34:03

标签: mysql grails groovy

我已经通过在我的系统中安装MySql并将其驱动程序放在 X / lib 目录(其中X是我的应用程序名称)中,为Grails中的MySql数据库配置了。我已将DataSource.groovy更改为与更改冲突。但是,当我使用命令grails run-app运行我的应用程序时,我收到错误

 ERROR spring.BeanBuilder  - WARNING: Your cache provider is set to 'com.opensymphony.oscache.hibernate.OSCacheProvider' in DataSource.groovy, however the class for this provider cannot be found.

Grails开始使用其内置的数据库..

如何摆脱这个错误?

DataSource.groovy代码是:

dataSource {
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = "grails"
password = "server"
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.provider_class =
'com.opensymphony.oscache.hibernate.OSCacheProvider'
}
// environment specific settings
environments {
development {
dataSource {
// one of 'create', 'create-drop','update'
dbCreate = "create-drop"
url = "jdbc:mysql://localhost:3306/racetrack_dev?autoreconnect=true"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost:3306/racetrack_dev?autoreconnect=true"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost:3306/racetrack_dev?autoreconnect=true"
}
}
}

提前致谢。

1 个答案:

答案 0 :(得分:1)

您使用什么版本的Grails来创建DataSource.groovy文件?

Grails 1.3.7将hibernate块作为:

hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = true
    cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
}

我认为可以解释您的错误消息? (因为您已将其设置为使用旧的OSCacheProvider


修改

这些是我刚试过的步骤,它们都按预期工作:

  1. 建立一个新数据库(我称之为ants

  2. 创建grails app

    grails create-app ants
    cd ants
    
  3. 编辑grails-app/conf/BuildConfig.groovy文件,取消注释以下行:

    mavenCentral()
    

    runtime 'mysql:mysql-connector-java:5.1.13'
    
  4. 编辑文件grails-app/conf/DataSource.groovy

    将dataSource块更改为:

    dataSource {
        pooled = true
        driverClassName = "com.mysql.jdbc.Driver"
        username = ""
        password = ""
    }
    

    和(在每个环境中)的网址

        url = "jdbc:mysql://localhost:3306/ants?autoreconnect=true"
    
  5. 创建域类:

    grails create-domain-class ants.Runners
    
  6. 运行应用

    grails run-app
    
  7. 然后,当您检查数据库时,您将拥有runners

    我猜你正在检查错误的数据库(你有一个dev,test和main db设置,每个环境都有一个)