データベース構成
デモンストレーション用のデフォルトでは、Liferay DXP/Portal は組み込みHSQLデータベースを使用するように構成されています。デモの目的以外に、次のようなフル機能のサポートされているRDBMSを使用することをお勧めします。
- MariaDB
- MySQL
- PostgreSQL
Liferay DXP 互換性マトリックス には、サポートされているデータベースとバージョンが一覧表示されています。
データベースに接続するには、次の手順が必要です。
データベース構成
データベースを選択したら、次の手順に従って構成します。
データベースを変更する前に、必ずデータベースベンダーのドキュメントを参照してください。
UTF-8をサポートする空のデータベースを作成する
多言語文字セットでは、UTF-8を使用する必要があります。 UTF-8を使用するデータベースを作成します。 MySQLコマンドの例は以下の通りです:
create database lportal default character set utf8mb4 collate utf8mb4_unicode_ci;
データベースユーザーアクセスの設定
Liferay DXPがデータを保持するには、データベースユーザーの認証情報が必要です。最も単純で簡単な方法は、テーブルを作成および削除する権限を含む完全なデータベース権限を持つデータベースユーザーを使用することです。このようなユーザーの場合、DXPプラグインはデータベースとシームレスに対話し、アップグレード操作は自動的に行われます。データベースユーザーの権限をこれ以上制限することはお勧めしません。
ただし、組織によってデータベースの初期化後にLiferay DXPデータベースのユーザー権限を制限する必要がある場合は、次の高セキュリティデータベースユーザーのプラクティスを参照してください。
高セキュリティデータベースのユーザー向け実践方法
組織によっては、データベースの初期化後に、Liferay DXPのデータベースユーザー権限を制限する必要がある、より厳格なセキュリティポリシーがある場合があります。選択、挿入、更新、および削除操作の権限のみをユーザーに許可する場合は、データベースを手動で初期化および保守する必要があります。これを実行するための推奨事項は次のとおりです。
-
Liferay DXPデータベースユーザーにデータベースに対して行うための完全な権限を付与します。
-
Liferay DXPをインストールして起動し、データベースに自動的にデータが入力されるようにします。
-
データベースにLiferay DXPテーブルが挿入されたら、選択、挿入、更新、および削除操作を実行する権限を除き、Liferay DXPデータベースユーザーからすべての権限を削除します。
Liferay DXPの一部のイベントは、これらの高度なセキュリティ対策と互換性のないデータベース操作(テーブルの作成や削除など)をトリガーすることに注意してください。このような場合、Liferayデータベースユーザーは一時的にデータベースに対する完全な権限を持つ必要があります。
| イベント | 今後の進め方 |
|---|---|
| オブジェクト定義の公開 | Liferayデータベースユーザーが完全なデータベース権限を持っていない限り、オブジェクトを使用しないでください。 |
| テーブルを作成するプラグインをデプロイする | デプロイ前に、Liferayデータベースユーザーに完全な権限を付与し、デプロイ後にデータベースを再度保護してください。 |
| Liferayのアップグレード | アップグレードを行う前に、Liferayデータベースユーザーに完全な権限を付与し、アップグレード後にデータベースを再度保護してください。 |
クエリ結果の並べ替え順序を設定する(オプション)
どのデータベースにも、結果を並べ替える際のデフォルトの順序が設定されています(こちらの記事を参照)。この順序が気になる場合は、データベースベンダーのドキュメントを参照してソート順序を確認し、必要に応じて、Liferay DXPエンティティに対して好みのデフォルトのクエリ結果順序を使用するようにデータベースを設定してください。
データベースサーバー、データベース、およびデータベースユーザーの設定が完了しました。これで、Liferay DXPがデータベースと通信するために使用するJDBCコネクタをインストールする準備が整いました。
JDBCコネクタをインストールします
Liferay DXPは、データベースとの通信にJDBCコネクタを必要とします。
オープンソースデータベース
Liferay DXPバンドルには、複数のオープンソースJDBCコネクタが含まれています。コネクタファイルは通常、アプリケーションサーバー上のグローバルフォルダに提供されインストールされます。たとえば、Tomcat の場合は /lib/ext 、JBoss EAP および WildFly の場合は /module などです。
OracleやDB2などの独自データベースに接続する場合は、ベンダーからコネクタをダウンロードし、アプリケーションサーバー上のグローバルフォルダにインストールしてください。
独自データベース:
| データベース | コネクタ | ベンダーサイト | 注記 |
|---|---|---|---|
| DB2 | db2jcc4.jar | IBM | db2jcc コネクタは 3.72 以降非推奨になりました。 |
| オラクル | ojdbc8.jar | オラクル | CLOB列からのデータ読み取り時にデータの切り捨ての問題が確認されているため、少なくともOracle 12.2.0.1.0のJDBC 4.2バージョンに対応したojdbc8.jarライブラリが必要です。 |
データソースの設定
以下の表に記載されているいずれかの方法を使用して、組み込みのデータソース接続でDXPを設定できます。
| 方法 | Dockerイメージで利用可能 | 生産向けに推奨 |
|---|---|---|
| Docker環境変数 | はい | はい |
| ポータルプロパティ | はい* | はい |
| セットアップウィザード | いいえ | いいえ |
Docker環境変数
DXP環境変数をDockerイメージに渡すことで、組み込みのデータソース接続を設定できます。例については、 データベーステンプレート を参照してください。
ポータルプロパティ
Liferay Tomcat Bundle、アプリケーションサーバーのインストール、またはDockerイメージで、 ポータルプロパティ ファイルを使用してデータソース接続を構成できます。例については、 データベーステンプレート を参照してください。
Dockerイメージでポータルプロパティファイルを使用するには、バインドマウントまたはボリュームを使用してファイルを渡す必要があります。詳細については、 コンテナへのファイルの提供 を参照してください。
セットアップウィザード
バンドルまたはアプリケーションサーバーで本番環境以外の目的でDXPを実行している場合は、セットアップウィザードを使用してDXPの起動時にデータソース接続を構成できます。
