尝试将知识的数据库更改为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
点击“将在嵌入式数据库中保存的数据复制到自定义配置的数据库”。
虽然需要稍微多一点时间,但是会保存。
数据库切换已完成。