Jira アプリケーションの MySQL への接続
1. MySQL データベースの作成および設定
- Jira の接続時に使用するデータベース ユーザーを作成し、名前をつけます (例:
jiradbuser
)。
以降のステップにおいて Jira の接続を設定する際に利用されるため、このデータベース ユーザー名を覚えておく必要があります。 Jira が課題を格納するデータベースを作成します (例:
jiradb
)。このデータベースには、UTF8 の文字セットが設定されている必要があります。MySQL コマンド クライアントから以下のコマンドを入力します。
以降のステップにおいて Jira の接続を設定する際に利用されるため、このデータベース名を覚えておく必要があります。CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;
(データベース名を
jiradb
にした場合)。ユーザーには必ず、データベースに接続する権限ならびにテーブルの作成および事前設定を行う権限を与えます。これは、以下で提供されます。
MySQL 5.5、MySQL 5.6、および MySQL 5.7.0 〜 MySQL 5.7.5 の場合:GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on <JIRADB>.* TO '<USERNAME>'@'<JIRA_SERVER_HOSTNAME>' IDENTIFIED BY '<PASSWORD>'; flush privileges;
MySQL 5.7.6 以上の場合は、REFERENCES 権限も含める必要があります。
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,ALTER,INDEX on <JIRADB>.* TO '<USERNAME>'@'<JIRA_SERVER_HOSTNAME>' IDENTIFIED BY '<PASSWORD>'; flush privileges;
ポイント:
権限が正常に付与されたかを確認するには、Jira DB ユーザを使用して DB サーバにログインし、以下のコマンドを実行します:
SHOW GRANTS FOR <USERNAME>@<JIRA_SERVER_HOSTNAME>;
my.cnf
ファイル (Windows OS では通常 my.ini
) を編集します (my.cnf
およびmy.ini
を編集する際の詳細な手順については、MySQL オプション ファイルを参照してください)。ファイルの[mysqld]
セクションを見つけ、以下のパラメータを追加あるいは修正します。デフォルトのストレージエンジンを InnoDB に設定します:
[mysqld] ... default-storage-engine=INNODB ...
max_allowed_packet
の値が 256 M 以上になるように指定します。[mysqld] ... max_allowed_packet=256M ...
MySQL 5.5 以下の場合、
innodb_log_file_size
の値が 256 M 以上になるように指定します。[mysqld] ... innodb_log_file_size=256M ...
注意:MySQL 5.6 以上の場合、この値を少なくとも 2G に設定する必要があります。
sql_mode パラメーターが NO_AUTO_VALUE_ON_ZERO に指定されていないことを確認します。
// remove this if it exists sql_mode = NO_AUTO_VALUE_ON_ZERO
変更内容を有効にするには、MySQL サーバーを再起動します:
- Windows 上では、Windows サービスマネージャーを利用してサービスを再起動します。
- Linux の場合
- お使いのセットアップに応じて、以下のコマンドを実行します: "
/etc/init.d/mysqld stop
"、"/etc/init.d/mysql stop
”、"service mysqld stop
"。 - 次に "
stop
" を "start
" に置き替えて同じコマンドを再び実行します。
- お使いのセットアップに応じて、以下のコマンドを実行します: "
2. お使いのアプリケーションサーバに MySQL JDBC ドライバーをコピーする
Jira のアップグレードにあたって、推奨される MySQL ドライバ (Connector/J JDBC driver v5.1) を利用している場合、本セクションの手順をスキップして構いません。Jira のアップグレード タスクは、既存のドライバをアップグレードされたインストレーションに自動的にコピーします。
お使いのアプリケーションサーバに MySQL JDBC ドライバーをコピーする:
- MySQL ドライバーを取得します:
- Jira をインストールする場合、 推奨される MySQL ドライバである JDBC Connector/J 5.1 をダウンロードします。
"Platform Independent" オプションを選択することで、.tar.gz
あるいは.zip
ファイルをダウンロードできます。ドライバー用の jar ファイルを取得します (mysql-connector-java-5.x.x-bin.jar
)。 - Jira をアップグレードしようとしていて、推奨される MySQL ドライバ (JDBC Connector/J 5.1) を使用していない場合、アップグレード前に Jira インストレーションからドライバをバックアップします。
ドライバは <Jira installation directory>
>/lib/
ディレクトリにあります。
- Jira をインストールする場合、 推奨される MySQL ドライバである JDBC Connector/J 5.1 をダウンロードします。
- 新しい / アップグレードされたインストレーション用に、MySQL JDBC ドライバの jar を <
Jira installation directory>
>/lib/
ディレクトリにコピーします。Windows インストーラーを利用して Jira をインストールしている場合、このステップは、Windows インストーラーの実行後、セットアップ ウィザードの実行前に行います。 - Jira / Jira サービスを再起動します。
- Jira をインストールする場合、このページの残りの説明をスキップし、ブラウザで Jira にアクセスしてセットアップ ウィザードを実行します。
注意:
- 我々は、MySQL の Connector/J ドライバーを推奨しています(上にリンクあり)。あるユーザから、MySQL の Resin JDBC ドライバーを使用した際に問題があったという報告がありました。
3. MySQL データベースに接続するための Jira サーバーを設定
Jira サーバで MySQL データベースへの接続を構成するには、2 つの方法があります。
- Jira セットアップ ウィザード を使用する — Jira をインストールした直後で、初めて Jira をセットアップする場合はこの方法を使用します。設定は、Jira ホーム ディレクトリの
dbconfig.xml
ファイルに保存されます。 - Jira 設定ツール を使用する — 既存の Jira インスタンスがある場合はこの方法を使用します。設定は、Jira ホーム ディレクトリの
dbconfig.xml
ファイルに保存されます。
各設定手法の手順説明
Jira セットアップ ウィザード
ブラウザから初めて Jira にアクセスすると、Jira セットアップ ウィザード が表示されます。
- 最初の画面 の “Configure Language and Database” で、 “Database Connection” に My own database を選択します。
- データベース タイプを MySQL に設定します。
- 下記の データベース接続関連フィールド を参照し、フィールド入力を行います。
- 接続をテストし、保存します。
Jira 設定ツール
- Jira 設定ツールを次のように実行します。
- Windows: コマンド プロンプトを開いて、Jira インストール ディレクトリの
bin
サブディレクトリにあるconfig.bat
を実行します。 - Linux/Unit: コンソールを開いて、Jira インストール ディレクトリの
bin
サブディレクトリにあるconfig.sh
を実行します。
KB 記事「Unable to Start Jira applications Config Tool due to No X11 DISPLAY variable was set error に記載のエラーで失敗する場合があります。この場合、ページに記載されている回避策をご参照ください。
- Windows: コマンド プロンプトを開いて、Jira インストール ディレクトリの
- データベース タブへ進み、データベースの種類 を MySQL に設定します。
- 下記の データベース接続関連フィールド セクションを参照し、各フィールドに入力します。
- 接続をテストし、保存します。
- Jira を再起動します。
データベース接続フィールド
セットアップウィザード/設定ツール | dbconfig.xml | 説明 |
---|---|---|
ホスト名 |
IPv6 アドレスを使用している場合は、URL を以下のようにする必要があります。 | MySQL サーバがインストールされている、マシンの名前あるいは IP アドレス。 |
ポート |
| MySQL サーバがリッスンしている TCP/IP ポート。デフォルトのポートを利用する際は、ここを空白にします。 |
データベース |
| お使いの MySQL データベースの名前 (JIRA データの保存先)。上記 ステップ 1で作成済みのはずです。 |
ユーザ名 |
| MySQL サーバに接続する際に JIRA が利用するユーザ。上記 ステップ 1で作成済みのはずです。 |
パスワード | <password> タグに配置されます (下記の例の太字部分):<password> jiradbuser</password> | MySQL サーバとの認証に利用する、ユーザのパスワードです。 |
dbconfig.xml ファイルのサンプル
- 上記の
dbconfig.xml
ファイルに含まれる、pool
で始まる<jdbc-datasource/>
の子要素の詳細については、「データベース接続のチューニング」を参照してください。 - Jira セットアップ ウィザードとデータベース設定ツールも、
<validation-query>select 1</validation-query>
要素をこのファイルに追加します。これは通常、既定の MySQL インストールを使用して Jira を実行する際に必要です。詳細は、「コネクション切断の問題への対処方法」を参照してください。 - 以下の例のデータベース URL は、UTF-8 データベースを想定しています。つまり、データベースが
create database jiradb character set utf8;
などのコマンドを使用して作成されています。このデータベースの作成時にcharacter set utf8
を指定しない場合、データのインポート時に "Data truncation: Data too long for column
" エラーが発生したり、サポート対象外の文字の文字化けが発生したりする可能性があります。 - 以下の例のデータベース URL には、
sessionVariables=default_storage_engine=InnoDB
パラメーターが含まれます。データ破損を防ぐために、このパラメーターを追加することを強くお勧めします。
<?xml version="1.0" encoding="UTF-8"?>
<jira-database-config>
<name>defaultDS</name>
<delegator-name>default</delegator-name>
<database-type>mysql</database-type>
<jdbc-datasource>
<url>jdbc:mysql://dbserver:3306/jiradb?useUnicode=true&characterEncoding=UTF8&sessionVariables=default_storage_engine=InnoDB</url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<username>jiradbuser</username>
<password>password</password>
<pool-min-size>20</pool-min-size>
<pool-max-size>20</pool-max-size>
<pool-max-wait>30000</pool-max-wait>
<pool-max-idle>20</pool-max-idle>
<pool-remove-abandoned>true</pool-remove-abandoned>
<pool-remove-abandoned-timeout>300</pool-remove-abandoned-timeout>
<validation-query>select 1</validation-query>
<min-evictable-idle-time-millis>60000</min-evictable-idle-time-millis>
<time-between-eviction-runs-millis>300000</time-between-eviction-runs-millis>
<pool-test-while-idle>true</pool-test-while-idle>
<pool-test-on-borrow>false</pool-test-on-borrow>
<validation-query-timeout>3</validation-query-timeout>
</jdbc-datasource>
</jira-database-config>
4. Jira の起動
これで、MySQL データベースに接続するための Jira の設定が完了しました。次のステップでは、これを起動させます。
これで、Jira を MySQL に接続することができました。
既知の問題
以下は、このデータベースに関する既知の問題の一覧です。詳細については、それぞれを展開してください。