JIRA アプリケーションの MySQL への接続

ここでは、JIRA を MySQL データベースに接続する方法を解説します。

はじめる前に

  • ご使用の MySQL のバージョンがサポートされていることを確認します。サポート対象プラットフォームを参照してください。
  • 以下の既知の問題を確認してください。
  • 別のサーバーに JIRA を移行する場合は、XML backup としてデータのエクスポートを作成します。その後、「データベースの切り替え」で説明されているように、元のデータベースから新しいデータベースへデータを移行できます。
  • Confluence と Jira を同じ MySQL サーバでセットアップする場合、Confluence MySQL セットアップ ガイドをお読みください。Confluence の要件は Jira のそれよりも厳格であるため、MySQL は Confluence に適するように構成します。この構成は、Jira でも適用できます。
  • セットアップウィザードを実行中でなければ、開始する前に JIRA をシャットダウンします。

このページの内容:

1. MySQL データベースの作成および設定

  1. Create a database user which JIRA will connect as (e.g. jiradbuser).
    Remember this database user name, as it will be used to configure JIRA's connection to this database in subsequent steps.
  2. Create a database for JIRA to store issues in (e.g. jiradb). The database must have a character set of UTF8. Enter the following command from within the MySQL command client.
    Remember this database name, as it will be used to configure JIRA's connection to this database in subsequent steps.

    CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;

    (if you want your database to be named jiradb). 

  3. 必ず、ユーザにはデータベースに接続する権限、並びにテーブルの作成・事前設定を行う権限を与えます。これは、以下の方法で行います:

    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on <JIRADB>.* TO '<USERNAME>'@'<JIRA_SERVER_HOSTNAME>' IDENTIFIED BY '<PASSWORD>';
    flush privileges;

    ポイント:

    権限が問題無く付与されたかを確認するには、JIRA DB ユーザを利用して DB サーバにログインし、以下のコマンドを実行します:

    SHOW GRANTS FOR <USERNAME>@<JIRA_SERVER_HOSTNAME>;
  4. Edit the my.cnf file (my.ini on Windows operating systems) in your MySQL server. (Refer to MySQL Option Files for detailed instructions on editing my.cnf and my.ini.)
    Locate the [mysqld]section in the file, and add or modify the following parameters:

    • デフォルトのストレージエンジンを InnoDB に設定します:

      [mysqld]
      ...
      default-storage-engine=INNODB
      ...
    • Specify the value of max_allowed_packet to be at least 256M:

      [mysqld]
      ...
      max_allowed_packet=256M
      ...
    • Specify the value of innodb_log_file_size to be at least 256M for MySQL 5.5 and below:

      [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
  5. 変更内容を有効にするには、MySQL サーバーを再起動します:

    • Windows 上では、Windows サービスマネージャーを利用してサービスを再起動します。
    • Linux 上では:
      • Run one of the following commands, depending on your setup: '/etc/init.d/mysqld stop' or '/etc/init.d/mysql stop' or 'service mysqld stop'.
      • Then run the same command again, replacing 'stop' with 'start'.

2. お使いのアプリケーションサーバに MySQL JDBC ドライバーをコピーする

JIRA のアップグレードにあたって、推奨 MySQL ドライバーを利用しているのであれば (Connector/J JDBC ドライバー v5.1)、本セクションの内容をスキップして構いません。JIRA のアップグレードタスクは、既存のドライバーをアップグレードされたインストレーションへと自動的にコピーします。

お使いのアプリケーションサーバに MySQL JDBC ドライバーをコピーする:

  1. MySQL ドライバーを取得します:
    • If you are installing JIRA, download the recommended MySQL driver JDBC Connector/J 5.1.
      You can download either the .tar.gz or the .zip file by selecting the 'Platform Independent' option. Extract the jar for the driver (e.g. mysql-connector-java-5.x.x-bin.jar) from the archive.
    • If you are upgrading JIRA and you are not using the recommended MySQL driver (JDBC Connector/J 5.1), back up the driver from your JIRA installation before you upgrade.
      The driver will be in the <JIRA installation directory>/lib/ directory.
  2. Copy the MySQL JDBC driver jar to the <JIRA installation directory>/lib/ directory for your new/upgraded installation. If you are installing JIRA using the Windows installer, you will need to do this step after running the Windows installer, but before running the setup wizard.
  3. JIRA / JIRA サービスを再起動します。
  4. JIRA をインストールする場合は、このページの残りの説明をスキップし、ご使用のブラウザーで JIRA にアクセスしてセットアップ ウィザードを実行してください。

注意:

  • 我々は、MySQL の Connector/J ドライバーを推奨しています(上にリンクあり)。あるユーザから、MySQL の Resin JDBC ドライバーを使用した際に問題があったという報告がありました。

3. お使いの MySQL データベースに接続するために JIRA サーバを設定します

ご使用の MySQL データベースに接続するために JIRA サーバを設定する方法は2つあります。

  • Using the JIRA setup wizard — Use this method if you have just installed JIRA, and are setting it up for the first time. Your settings will be saved to the dbconfig.xml file in your JIRA home directory.
  • Using the JIRA configuration tool — Use this method, if you have an existing JIRA instance. Your settings will be saved to the dbconfig.xml file in your JIRA home directory.

各設定手法の手順説明

JIRA セットアップ ウィザード

ブラウザから初めて JIRA にアクセスすると、JIRA セットアップウィザード が表示されます。

  1. 最初の画面 の “Configure Language and Database” で、 “Database Connection” に My own database を選択します。
  2. データベース タイプMySQL に設定します。
  3. 下記の データベース接続関連フィールド を参照し、フィールド入力を行います。
  4. 接続をテストし、保存します。

JIRA 設定ツール

  1. 次のように JIRA 設定ツールを実行します。
  2. データベース タブへ進み、データベースの種類 MySQL に設定します。
  3. 下記の データベース接続関連フィールド セクションを参照し、各フィールドに入力します。
  4. 接続をテストし、保存します。
  5. Jira を再起動します。

データベース接続フィールド

セットアップウィザード/設定ツール dbconfig.xml 説明
ホスト名

Located in the <url> tag (bold text in example below):
<url>jdbc:mysql://dbserver:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=storage_engine=InnoDB</url>

MySQL サーバがインストールされている、マシンの名前あるいは IP アドレス。
ポート

Located in the <url> tag (bold text in example below):
<url>jdbc:mysql://dbserver:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=storage_engine=InnoDB</url>

MySQL サーバがリッスンしている TCP/IP ポート。デフォルトのポートを利用する際は、ここを空白にします。
データベース

Located in the <url> tag (bold text in example below):
<url>jdbc:mysql://dbserver:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=storage_engine=InnoDB</url>

お使いの MySQL データベースの名前 (JIRA データの保存先)。上記 ステップ 1で作成済みのはずです。
ユーザ名

Located in the <username> tag (see bold text in example below):
<username>jiradbuser</username>

MySQL サーバに接続する際に JIRA が利用するユーザ。上記 ステップ 1で作成済みのはずです。
パスワード Located in the <password> tag (see bold text in example below):
<password>jiradbuser</password>
MySQL サーバとの認証に利用する、ユーザのパスワードです。

dbconfig.xml ファイルのサンプル

  • 上記の dbconfig.xml ファイルに含まれる、pool で始まる <jdbc-datasource/> の子要素の詳細については、「データベース接続のチューニング」を参照してください。
  • Both the JIRA setup wizard and database configuration tool also add the element <validation-query>select 1</validation-query> to this file, which is usually required when running JIRA with default MySQL installations. See Surviving connection closures for more information.
  • The database URL in the example below assumes a UTF-8 database — i.e. that your database was created using a command similar to create database jiradb character set utf8; If you do not specify character set utf8 when creating this database, you risk getting 'Data truncation: Data too long for column' errors when importing data or corruption of non-supported characters.
  • The database URL in the example below contains the sessionVariables=storage_engine=InnoDB parameter. We strongly recommend adding this parameter to avoid data corruption.
<?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&amp;characterEncoding=UTF8&amp;sessionVariables=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 の設定が完了しました。次のステップでは、これを起動させます!

(tick)  おめでとうございます、これで MySQL データベースに JIRA が接続しました。

既知の問題

以下は、このデータベースに関する既知の問題の一覧です。詳細については、それぞれを展開してください。

権限のホスト名が文字列として比較される...

If you grant permissions in MySQL to a hostname such as localhost, then you'll need to use the same string when connecting to the database from JIRA. Using 127.0.0.1 won't work, even though it resolves to the same place. This mistake will result in warnings about tables not being found, because the JDBC connection didn't have permissions to create the new tables when JIRA was set up.

コネクションの問題...

以下のいずれかを利用して MySQL データベースを使用している場合、コネクションが切断される問題が発生する可能性があります (詳しくは JRA-15731 を参照してください)。

  • JIRA 3.13 以降、
  • Tomcat 5 のバージョン 5.5.25 以上
  • Tomcat 6 のバージョン 6.0.13 以上

これに対処する方法の詳細については、「コネクション切断の問題を乗り越える方法」を参照してください。

データベース パスワードで特殊文字がサポートされない...

Jira が特殊文字を解釈できないため、データベース パスワードでは特殊文字はサポートされていません。

InnoDB ストレージ エンジンの使用...

バージョン 5.5 より前のバージョンの MySQL サーバーで使用されている既定のストレージ エンジンは、MyISAM です。このため、バージョン 5.5 より前の MySQL サーバの既定の構成で実行されている Jira データベースでは、テーブル作成に関する問題が発生する可能性があり (JRA-24124)、これは Jira のデータ破損につながる場合があります。

To avoid this problem, we strongly recommend specifying the sessionVariables=default_storage_engine=InnoDB parameter in your database URL (as stated above). This will ensure that tables written to JIRA's MySQL database use the InnoDB storage engine, which supports 'database transactions' required by JIRA.

バイナリ ログ...

Jira は、MySQL の 'READ-COMMITTED' トランザクション分離レベルを使用しており、これは現在は行ベースのバイナリ ログのみに対応しています。

MySQL のバイナリ ログ機能が必要な場合、MySQL のバイナリ ログの形式を '行ベース' に設定する必要があります。これを行わない場合、Jira で課題を作成する際に問題が生じる可能性があります。

4 バイト文字がサポートされない...

Jira では MySQL での 4 バイト文字の使用をサポートしていません。

最終更新日 2018 年 8 月 13 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.