我正在尝试在AppFog上部署带有MySQL绑定的Grails 2.3.5应用程序。我使用DataSource.groovy中的以下设置成功完成了Grails 2.2.4应用程序:
production {
def envVar = System.env.VCAP_SERVICES
def credentials = envVar?grails.converters.JSON.parse(envVar)["mysql-5.1"][0]["credentials"]:null
dataSource {
pooled = true
dbCreate = "update"
driverClassName = "com.mysql.jdbc.Driver"
url = credentials?"jdbc:mysql://${credentials.hostname}:${credentials.port}/${credentials.name}?useUnicode=yes&characterEncoding=UTF-8":""
username = credentials?credentials.username:""
password = credentails?credentials.password:""
}
}
我还在BuildConfig.groovy中取消注释了运行时mysql连接器语句。我的2.2.4应用程序启动,允许数据提交,并在应用程序重启后保留数据。
在我的2.3.5应用程序中,我可以在没有MySQL的AppFog上部署,在BuildConfig.groovy中设置以下内容,将构建版本降级为Tomcat 6:
grails.servlet.version = "2.5"
并在插件部分:
build ":tomcat:2.2.4"
应用程序启动并提交数据,但由于文件不存在,因此在应用程序重新启动后会删除H2数据文件。如果我进行与上面相同的更改来配置MySQL,则在应用程序启动时会出现以下错误:
Feb 12, 2014 6:05:44 PM org.apache.tomcat.jdbc.pool.ConnectionPool init
SEVERE: Unable to create initial connections of pool.
java.sql.SQLException: Access denied for user 'uqVkBpKILRjxS'@'10.0.13.117' (using password: NO)
日志包含更多内容,但这似乎是违规错误。 Grails 2.3.5中有其他更改我需要添加到配置文件中吗?谢谢你的帮助。