概要
利用するデータベースには H2 Database と MySQL を利用するバイナリを提供しています。ソースコードを用いて設定を変更してビルドすることで他のデータベースを利用することができます。
MySQLを利用する場合
準備
MySQL の文字コードの設定をします。/etc/mysql/my.cnf などに以下の設定がなければ追加します。
[mysqld]
character-set-server = utf8 # mysql 5.5 以降
# default-character-set = utf8 mysql 5.1以下
インストール
MySQL 用のバイナリをダウンロードして展開します。
設定
データベースを作成します。
$ mysql -u root -p
mysql> create database fess_db;
mysql> grant all privileges on fess_db.* to fess_user@localhost identified by 'fess_pass';
mysql> create database fess_robot;
mysql> grant all privileges on fess_robot.* to s2robot@localhost identified by 's2robot';
mysql> FLUSH PRIVILEGES;
作成したデータベースにテーブルを作成します。DDL ファイルは extension/mysql にあります。
$ mysql -u fess_user --password=fess_pass fess_db < extension/mysql/fess.ddl
$ mysql -u s2robot --password=s2robot fess_robot < extension/mysql/robot.ddl
webapps/fess/WEB-INF/lib に mysql ドライバの jar を配置します。
$ cd webapps/|fess_context_name|/WEB-INF/lib/
$ rm h2-1.*.jar
$ wget http://mirrors.ibiblio.org/pub/mirrors/maven2/mysql/mysql-connector-java/5.1.18/ \
mysql-connector-java-5.1.18.jar
$ cd ../../../../
webapps/fess/WEB-INF/classes/jdbc.dicon を編集します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components namespace="jdbc">
<include path="jta.dicon"/>
<!-- MySQL -->
<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"com.mysql.jdbc.Driver"
</property>
<property name="URL">
"jdbc:mysql://localhost:3306/fess_db?" +
"noDatetimeStringSync=true&" +
"zeroDateTimeBehavior=convertToNull&" +
"useUnicode=true&characterEncoding=UTF-8&" +
"autoReconnect=true"
</property>
<property name="user">"fess_user"</property>
<property name="password">"fess_pass"</property>
</component>
<component name="connectionPool"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<property name="timeout">600</property>
<property name="maxPoolSize">10</property>
<property name="allowLocalTx">true</property>
<destroyMethod name="close"/>
</component>
<component name="DataSource"
class="org.seasar.extension.dbcp.impl.DataSourceImpl"
/>
</components>
webapps/fess/WEB-INF/classes/s2robot_jdbc.dicon を編集します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components namespace="jdbc">
<include path="jta.dicon"/>
<!-- for MySQL -->
<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"com.mysql.jdbc.Driver"
</property>
<property name="URL">
"jdbc:mysql://localhost:3306/fess_robot?" +
"noDatetimeStringSync=true&" +
"zeroDateTimeBehavior=convertToNull&" +
"useUnicode=true&characterEncoding=UTF-8&" +
"autoReconnect=true"
</property>
<property name="user">"s2robot"</property>
<property name="password">"s2robot"</property>
</component>
<component name="connectionPool"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<property name="timeout">600</property>
<property name="maxPoolSize">10</property>
<property name="allowLocalTx">true</property>
<property name="transactionIsolationLevel">
@java.sql.Connection@TRANSACTION_REPEATABLE_READ</property>
<destroyMethod name="close"/>
</component>
<component name="DataSource"
class="org.seasar.extension.dbcp.impl.DataSourceImpl"
/>
</components>