尝试将知识的数据库更改为PostgreSQL

知识在默认情况下使用简易数据库。由于建议切换到Postgresql,所以我尝试将数据库切换到Postgresql。我在查看知识手册的同时进行了尝试,但遇到了几次问题,所以做个备忘录。

关于knowledge的安装(CentOS7.3),请参考以下链接:
http://qiita.com/htakeda/items/defd0ee58615bb46b96f

1. 安装Postgresql

既然这样,我会试着安装最新版本的Postgres。

安装存储库和PostgreSQL软件包。

# wget https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
# rpm -ivh pgdg-centos96-9.6-3.noarch.rpm
# yum install postgresql96 postgresql96-server postgresql96-devel postgresql96-libs

2. 数据库的初始化和各种配置文件的修改

数据库的初始化

/usr/pgsql-9.6/bin/postgresql96-setup initdb
# cd /var/lib/pgsql/9.6/data/

只摘录更改部分:访问权限的IP地址更改为任意IP地址。

listen_addresses = '*'                  # what IP address(es) to listen on;
log_line_prefix = '<%t %u %d>'                  # special values:
# "local" is for Unix domain socket connections only
#local   all             all                                     peer
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
host    all             all             192.168.0.0/16          password
# IPv6 local connections:
host    all             all             ::1/128                 ident

3. 启动和用户创建

・启动数据库

systemctl start postgresql-9.6

・自動启动设置

systemctl enable postgresql-9.6

・创建用户

su - postgres
$ createuser knowuser -d -l -P
    • ユーザ名:knowuser

 

    • データベース作成権限:-d

 

    • ログイン許可:-l

 

    パスワード設定:-P

创建数据库

$ createdb knowledge -U knowuser
    • DB名:knowledge

 

    接続ユーザ:knowuser

我不会创建表格。

确认

$ psql -l
$ exit

确认是否可以访问数据库。

# psql -h 192.168.XXX.XXX -U knowuser -d knowledge

4. 准备切换DB

JDBC的下载

使用wget命令下载jar文件。

cd /usr/share/java
wget https://jdbc.postgresql.org/download/postgresql-42.1.3.jar

更改/etc/profile文件的内容(添加postgresql配置)。

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:/usr/share/java/postgresql-42.1.3.jar
export CATALINA_HOME=/usr/local/tomcat

export KNOWLEDGE_HOME=/home/tomcat/.knowledge
export JAVA_OPTS="-Dfile.encoding=UTF-8 \
  -Dnet.sf.ehcache.skipUpdateCheck=true \
  -XX:+UseConcMarkSweepGC \
  -XX:+CMSClassUnloadingEnabled \
  -XX:+UseParNewGC \
  -XX:MaxPermSize=128m \
  -Xms512m -Xmx512m"

当重新启动后,进行自动启动确认。
如果未能自动启动,则执行/etc/profile的应用和重新启动tomcat。

# source /etc/profile
# /usr/local/tomcat/bin/shutdown.sh
# /usr/local/tomcat/bin/startup.sh

5. 切换任务

    在Tomcat启动后,从浏览器中打开knowledge。使用管理员权限登录并打开“系统设置”。打开“数据管理”-“更改数据库连接目标”。填写每个设置。
URL:jdbc:postgresql://192.168.xxx.xxx:5432/knowledge
   ※ knowledgeはDB名

user: knowuser(DBにログインするユーザ)
password: xxxxxxxx(DBのパスワード)
schema: public
max connection:0
auto commit: false

点击“将在嵌入式数据库中保存的数据复制到自定义配置的数据库”。

虽然需要稍微多一点时间,但是会保存。

数据库切换已完成。

广告
将在 10 秒后关闭
bannerAds