连接到一个Grails应用程序数据库(connecting to a grails app data

2019-10-17 07:31发布

我白天是个Python开发,但我有一些Java经验,以及(大部分支柱)。 在工作中我交给一个Grails应用安装,这是确定的,但应用程序的业主没有提供任何凭证,并且应用程序加载到登录页面。

我打开了战争,但我认为DB的配置已经被打包成一个罐子的地方,因为我似乎无法找到任何连接的URL。 有后,我部署的应用程序一个已经创建的H2数据库文件,所以我想知道:

我怎么能连接到数据库就像你通常会使用SQLite或MySQL客户端,浏览表格,并创建一个管理员用户,这样我可以登录?

Answer 1:

去反编译。 你不仅需要用户名和密码,但至少一个数据库的JDBC URL 。 这可能包括DBMS名,主机,端口,数据库名称 - 这取决于Java驱动程序的细节。 然后连接,你通常会在Python或什么的,或者与DBVisualizer中 。

但是,如果数据库是在H2 / HSQL(URL像jdbc:h2:mem:XXX ),你有一个问题:它是一个Java进程DBMS。 为了获得它的外部访问,你需要改变反编译的代码,编译和打包回来一些补充 。 希望这不是你的情况。

在HSQL / H2情况下,另一种方法是找到并编译数据库引导代码 - 因为它是一个过程中的DB,应该在每一个应用程序启动时填充,所以应该创建一个超级用户密码。



Answer 2:

In Grails, the DB configuration, including authentication settings, are declared in a file called Datasource.groovy which is then compiled into the WAR. You'll need the source code to find the username and password for the H2 DB.



Answer 3:

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

另一个解决方法可以是提供从Grails的侧一些REST Web服务使人们有可能对Python程序访问数据库。 这是我喜欢,我经常选择的方式。

顺便说一句,你必须在conf目录下(在grails-app / conf目录/ DataSource.groovy中)的Grails使用的数据库的配置,你会得到的JDBC URL的数据库可能是转换成一个经典的URL。 例如:JDBC:MySQL的://本地主机/ my_app应用指的是在本地主机和缺省端口数据库程序my_app为MySQL数据库。

随意问,如果你需要更多的信息。

干杯



文章来源: connecting to a grails app database
标签: grails h2