tohokuaikiのチラシの裏

技術的ネタとか。

Confluenceのプラグイン開発を承ります。ご連絡はこちらのホームページからお願いいたします。

Confluence6.5をインストールした時にちょっと躓いたのでメモ

何気に6系は初めてだったりする。

いつものようにMySQLでデータベースを作成

mysql> create database confluence_demo_20171205 default character set utf8 ;
Query OK, 1 row affected (0.01 sec)

で、confluence/WEB-INF/classes/confluence-init.properties にconfluence.homeを設定してインストールWizardを走らせる。

MySQLを選択したら

Confluence needs a driver to connect to MySQL. You'll need to:
Download the MySQL driver
Drop the .jar file in /home/confluence/xxx/confluence/WEB-INF/lib
Restart Confluence and continue the setup process.

とか言われてしまった。しまったうっかりとお約束のMySQLJDBCを入れ忘れ。

Database JDBC Drivers - Atlassian Documentationに従って、MySQLJDBCドライバをOracleからいただきまして、/home/confluence/xxx/confluence/WEB-INF/libに入れてConfluenceの再起動

MySQLの設定

JDBCを入れて再度Wizardを進めると、Databaseのテスト接続で

Collation error
The database collation 'utf8_general_ci' is not supported by Confluence. You need to use 'utf8_bin'. Learn more

f:id:tohokuaiki:20171204161213p:plain

と言われてしまった。

https://confluence.atlassian.com/confkb/how-to-fix-the-collation-and-character-set-of-a-mysql-database-670958160.htmlによると、ちゃんとCollationまで気にして作らないとダメっぽい。

ということで、作り直し。

mysql> drop database confluence_demo_20171205;
Query OK, 0 rows affected (0.05 sec)

mysql> create database confluence_demo_20171205 default character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

まだだめっす

Incorrect isolation level
Your database must use 'READ-COMMITTED' as the default isolation level. Learn more

なんだこれは?

なんか、MySQL3.5からおかしかったらしいけど、なんか使えてたのがダメにされたっぽい。

詳細はConfluence fails to start and throws 'MySQL session isolation level 'REPEATABLE-READ' is no longer supported' error - Atlassian Documentationのあたりを読んでくれということで、結局my.cnfの[mysqld]セクションに

[mysqld]
transaction-isolation=READ-COMMITTED

という一行を付け加えてMySQLを再起動。

更にダメッす

これで一応最後まで行った…。とおもいきや。

なんか日本語が化けている。Confluenceのページ内は大丈夫だけどスペース名とかページタイトルが文字化けしてる。

んー、なんだこれはと思ったら、そういえば、以前のConfluenceのJDBCのDSNを決めるときって「useUnicode=true&characterEncoding=UTF8」とかつけてたよな…と思い出す。

一旦全部アンインストールして、DBのセットアップで「Setup type」を「By connection string」にしてさっきの文字を追加してやる。 f:id:tohokuaiki:20171204162206p:plain

jdbc:mysql://localhost/confluence_demo_20171205?useUnicode=true&characterEncoding=UTF8

ここまでやってようやく成功。