首页 > 数据库 >geonetwork更改默认数据库配置

geonetwork更改默认数据库配置

时间:2023-10-11 17:57:26浏览次数:37  
标签:xml jdbc geonetwork 数据库 配置 默认 JNDI

默认情况下,H2数据库是在GeoNetwork应用程序首次启动时配置和创建的。本文介绍如何将默认数据库更改为PostgreSQL数据库。

本文使用环境:

操作系统:Windows 11

JDK版本:jdk-8u381-windows-x64.exe

Elasticsearch版本:elasticsearch-7.9.2-windows-x86_64.zip

GeoNetwork版本:geonetwork-bundle-4.2.5-0.zip

数据库:postgresql-15.4-1-windows-x64.exe

数据库连接工具:DBeaver 23

本文通过修改配置文件的方式配置数据库

1、新建数据库geonetwork

安装完postgresql,新建一个名称为geonetwork的空库(空库即可,名称可自定义):

 2、修改应用程序使用的数据库类型,支持H2PostgreSQLPostGISOracleSQL Server等

geonetwork安装目录下找到srv.xml,修改数据库类型:

文件路径:.\geonetwork-bundle-4.2.5-0\web\geonetwork\WEB-INF\config-node\srv.xml

将resource中${geonetwork.db.type:h2}.xml更改为${geonetwork.db.type:postgres}.xml

 3、修改数据库连接配置:

geonetwork安装目录下找到jdbc.properties

文件路径:.\geonetwork-bundle-4.2.5-0\web\geonetwork\WEB-INF\config-db\jdbc.properties

修改数据库用户和密码(新建数据库的时候设置的),数据库名称,主机和端口:

 4、重启服务,打开应用系统,发现修改数据库连接后运行正常:

 通过DBeaver连接数据库,可以看到已经新建了很多表:

 

 

附:

根据官方文档,配置数据库还可以通过JNDI和环境变量(以下截自官方帮助文档,机翻的,若有不准确的地方请查阅官方文档):

通过 JNDI 配置数据库

Java 命名和目录接口 (JNDI) 是一种允许在 tomcat 中配置数据库并按名称引用 JNDI 连接的技术。

  1. 要激活JNDI,您需要激活/WEB-INF/config-node/srv.xml.

  2. 通过将新资源添加到 来配置 Tomcat 中的 JNDI 连接TOMCAT/conf/context.xml。对于 的码头WEB-INF/jetty-env.xml

    <Resource name="geonetwork"
        type="javax.sql.DataSource"
        driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://localhost:5432/geonetwork"
        username="xxxxx" password="xxxxxx"
        maxActive="20"
        />
    

通过环境配置数据库

通过环境变量设置配置属性在 Docker 等容器环境中很常见。存在 2 个选项:

  1. 通过替换 JAVA_OPTS 将参数直接添加到 Java 环境中。

    docker run --rm --name gn -p 8080:8080 -e JAVA_OPTS="
        -Dgeonetwork.db.type=postgres
        -Djdbc.database=example
        -Djdbc.username=example
        -Djdbc.password=xxx
        -Djdbc.host=localhost
        -Djdbc.port=5432" geonetwork:latest
    
  2. 设置精确的环境变量,包括“.”。许多 GeoNetwork 配置参数都包含一个点,这对于通过环境变量进行替换是一个挑战。Docker 是一个例外,它提供了一种允许在环境变量中出现点的机制。

    docker run --rm --name gn -p 8080:8080
        -e geonetwork.db.type=postgres
        -e jdbc.database=example
        -e jdbc.username=example
        -e jdbc.password=xxx
        -e jdbc.host=localhost
        -e jdbc.port=5432 geonetwork:latest
    

在 PostgreSQL 中可以配置postgrespostgis。在后一种情况下,GeoNetwork 将使用 PostGIS 的空间功能来过滤元数据。在第一种情况下(以及其他数据库方言),将创建一个 Shapefile 来存储元数据覆盖范围。

标签:xml,jdbc,geonetwork,数据库,配置,默认,JNDI
From: https://www.cnblogs.com/kk8085/p/17757815.html

相关文章

  • Linux服务器异地备份数据库脚本
    使用Cron作业调度工具来创建一个定时任务,以在每日凌晨1点的时候运行备份脚本。以下是在CentOS7上设置定时备份任务的一般步骤:1.编写备份脚本:创建一个备份脚本,用于连接远程MySQL数据库并执行备份操作。你可以使用mysqldump命令来备份数据库。这是一个简单的示例脚本:#!......
  • C++ - 连接mysql数据库
    1.准备工作1.1把libmysql.dll和libmysql.lib文件复制到工程目录下首先,我们要找到刚刚开始下载的MySQL数据库的安装目录,打开目录,并且将libmysql.dll文件和libmysql.lib文件复制到工程目录下~我安装MySQL的路径:E:\mysql-5.7.42-winx64\lib把libmysql.dll文件和l......
  • C++ - 操作mysql数据库
    操作数据库的案例#include<stdio.h>#include<stdlib.h>#include<mysql.h>//固定不变的MYSQLmysql;//一个数据库结构体MYSQL_RES*res;//一个结果集结构体MYSQL_ROWrow;//char**二维数据,存放一条条记录voidconnect();//连接数据库voidinsert();//插入......
  • 019 数据库学习笔记--代码生成工具(满满的成产力)
    -------------------------------生成实体类-------------------------------declare@TableNamesysname='ViewQualityInfo'declare@TableNameLsysname='viewQualityInfo'declare@Resultvarchar(max)='///<summary>///'......
  • luffy前端配置,跨域问题,后端数据库迁移, 后台主页功能,后台管理
    1luffy前端配置......
  • 连接数据库遇到过的问题
    java.sql.SQLException:Nosuitabledriverfoundforjdbc:mysql://localhost:3306/db2直接运行jdbc的代码能加载驱动,但是在servlet中调用就会出现以上错误。最后将mysql5.1.34版本的jar包直接放到tomcat的lib文件夹中,把之前导入maven的jar包删掉解决第二个问题:数据库不能录......
  • 查询数据库慢排查、获取当前数据库连接数,sql执行很快但是日志记录接口确很慢
    获取当前数据库连接数@ResourceprivateDruidDataSourcedruidDataSource;intactiveCount=druidDataSource.getActiveCount();intactivePeak=druidDataSource.getActivePeak();LOG.info("当前连接数:{},最高峰值连接数:{}",activeCount,activePe......
  • MySQL使用cmd窗口命令导入数据库
    如下:setgloballog_bin_trust_function_creators=1;--导入数据库之前做准备SETGLOBALlog_bin_trust_function_creators=TRUE;cmd命令窗口执行如下导入命令命令行登录mysqlmysql-uroot-pxxx;mysql>usedatabasename;mysql>sourced:/xxx.sqlend......
  • mongosh数据库增删改查
    通过MongoDBShell新建一个以自己名字(英文全拼,例如Sunjing)的数据库,并创建一个名为“grade”的集合,在该集合中插入自己上学期五门课程的成绩数据,具体包括课程名称,分数,任课教师,考试时间(或者其他相关信息)。并依次完成对数据进行增、删、改、查等基本操作,首先,打开MongoDBShell,连接......
  • 在SQL Server数据库实现图片文件的存取
    --如果要将图片数据存入SQLServer数据库的表中,我们必须使用SQLServer的image数据类型。在很多时候,我们需要将图片文件存入到SQLServer数据库中,并且在使用的时候将数据库中的图片取出。本文将描述用C#语言来实现这一过程。数据库表结构如果要将图片数据存入SQLServer......