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アドレスに変更。
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. 起動とユーザ作成
・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. 切り替え作業
- 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
5.「組み込みDBで保存していたデータをカスタム設定のDBにコピー」をクリックします。
少しだけ時間がかかるけれども、保存されます。
DBの切り替え完了。