我已经通过在我的系统中安装 MySql 并在 X/lib 目录中(其中 X 是我的应用程序名称)配置了 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"
}
}
}
提前致谢。
最佳答案
您使用哪个版本的 grails 创建该 DataSource.groovy 文件?
Grails 1.3.7 的休眠 block 为:
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
}
我认为哪个可以解释您的错误消息? (因为您已将其设置为使用旧的 OSCacheProvider
编辑
这些是我刚刚尝试的步骤,一切都按预期工作:
新建一个数据库(我把我的数据库命名为
ants
)创建 grails 应用
grails create-app ants cd ants
编辑
grails-app/conf/BuildConfig.groovy
文件,并取消注释行:mavenCentral()
和
runtime 'mysql:mysql-connector-java:5.1.13'
编辑文件
grails-app/conf/DataSource.groovy
。将数据源 block 更改为:
dataSource { pooled = true driverClassName = "com.mysql.jdbc.Driver" username = "" password = "" }
和 url(在每个环境中)
url = "jdbc:mysql://localhost:3306/ants?autoreconnect=true"
创建域类:
grails create-domain-class ants.Runners
运行应用
grails run-app
然后,当您检查数据库时,您将有一个runners
表
我猜您正在检查错误的数据库(您设置了开发、测试和主数据库,每个环境一个)
关于mysql - Grails配置Mysql数据库报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6703903/