LoginSignup
16
12

More than 5 years have passed since last update.

knowledgeのDBをPostgresqlに変更してみた

Last updated at Posted at 2017-07-04

knowledgeは、デフォルトでは簡易DBを使用しています。
推奨はPostgresqlへの切り替えを推奨しているので、DBをPostgresqlに切り替えてみました。
knowledgeのマニュアルを見ながらやってみたけれど、何回か躓いたので、備忘録として。

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. DBの初期化と各種設定ファイルの変更

・DBの初期化

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

・変更箇所のみ抜粋
アクセス権のIPアドレスは、任意のIPアドレスに変更。

/var/lib/pgsql/9.6/data/postgresql.conf
listen_addresses = '*'                  # what IP address(es) to listen on;
log_line_prefix = '<%t %u %d>'                  # special values:
/var/lib/pgsql/9.6/data/pg_hba.conf
# "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. 起動とユーザ作成

・DBの起動

systemctl start postgresql-9.6

・自動起動設定

systemctl enable postgresql-9.6

・ユーザ作成

su - postgres
$ createuser knowuser -d -l -P
  • ユーザ名:knowuser
  • データベース作成権限:-d
  • ログイン許可:-l
  • パスワード設定:-P

・DB作成

$ createdb knowledge -U knowuser
  • DB名:knowledge
  • 接続ユーザ:knowuser

※ テーブルは作成しません。

・確認

$ psql -l
$ exit

・DBにアクセスできるか確認。

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

4. DB切り替え準備

JDBCのダウンロード

jarファイルをwgetで取得します。

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"

一旦rebootして、自動起動の確認を行う。
自動起動しない場合は、/etc/profileの反映とtomcatの再起動を行う。

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

5. 切り替え作業

  1. tomcatの起動後、ブラウザからknowledgeを開きます。
  2. 管理者権限でログインし、「システム設定」を開きます。
  3. 「データ管理」-「データベースの接続先変更」を開きます。
  4. 各設定を埋めていきます。
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

5.「組み込みDBで保存していたデータをカスタム設定のDBにコピー」をクリックします。

少しだけ時間がかかるけれども、保存されます。

DBの切り替え完了。

16
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
12