连接到grails应用程序数据库

时间:2012-10-13 11:18:13

标签: grails h2

我白天是python开发人员,但我也有一些java经验(主要是struts)。在工作中,我被提交了一个grails应用程序来安装,这没关系,但应用程序的所有者没有提供任何凭据,应用程序加载到登录页面。

我解压缩了战争,但我认为数据库配置已被打包到某个地方的jar中,因为我似乎无法找到任何连接URL。我部署应用程序后创建了一个h2 db文件,所以我想知道:

如何像通常使用SQLite或mysql客户端一样连接到数据库,浏览表格,并创建管理员用户以便我可以登录?

3 个答案:

答案 0 :(得分:1)

使用反编译。您不仅需要用户和密码,还需要至少一个数据库JDBC URL。这可能包括DBMS名称,主机,端口,数据库名称 - 具体取决于Java驱动程序的细节。然后像往常一样用Python或其他方式连接,或用DBVisualizer连接。

但是如果数据库在H2 / hsql中(URL类似于jdbc:h2:mem:XXX),那么你就遇到了一个问题:它是一个Java进程内DBMS。为了获得对它的外部访问权限,您需要更改反编译代码,使用some additions进行编译和打包。希望不是你的情况。

hsql / H2案例的另一种方法是查找和反编译数据库引导代码 - 因为它是一个进程内数据库,它应该在每次应用程序启动时填充,因此应该有一个代码创建该超级用户。

答案 1 :(得分:0)

在Grails中,数据库配置(包括身份验证设置)在名为Datasource.groovy的文件中声明,然后编译到WAR中。您需要源代码才能找到H2 DB的用户名和密码。

答案 2 :(得分:-1)

我不知道Python是否可以连接到java数据源,但它可能是一个解决方案。

另一种解决方案可能是从Grails端提供一些REST Web服务,以使python程序可以访问数据库。这是我喜欢的方式,我经常选择。

顺便说一句,你有confils目录中grails使用的数据库的配置(grails-app / conf / DataSource.groovy),你将得到数据库的jdbc URL,可以转换为经典URL。例如:jdbc:mysql:// localhost / my_app是指localhost上的数据库my_app和mysql数据库的默认端口。

随时询问您是否需要更多信息。

干杯