問題
- Liferay 7.0 を MySQL 5.6 で照合 CHARACTER SET utf8mb3 とともに使用すると、特定の制限があります。
Environment
- Liferay 7.0
解決策
-
デフォルトでは、Liferay は utf8mb3 を使用して MySQL 5.6 にデータベース テーブルを作成し (UTF-8 表現で最大 3 バイトの文字のみに制限されます)、共有される文字には UTF-8 での 4 バイト表現が必要です。 その結果、コンテンツ作成者が 4 バイトの UTF-8 表現を持つ文字を使用してコンテンツを作成できるようにする場合、MySQL 5.6 データベースの個々のテーブルはである必要があります。
-
MySQL 5.7 で再現できない理由は、LPS-70734に記載されているように、MySQL 5.6 で utf8mb4 をしてテーブルを適切に作成する方法を Liferay が認識していないためです。 データベースのデフォルトの文字セットが utf8mb4 であっても、MySQL 5.6 はテーブルの作成にそれを尊重しません (明示的に設定する必要があり、Liferay はその作成ステートメントでそうしません。代わりに、データベースが面倒を見ると仮定します)。それ)。
-
テーブル作成の問題に加えて、インデックス作成エラーを回避するために、MySQL が Antelope (MySQL 5.6 のデフォルトの InnoDB ファイル形式) を使用していないことを確認し、代わりに Barracuda (MySQL 5.7 のデフォルトの InnoDB ファイル形式) を使用する必要があります。また、MySQL 5.6 のオプションもあります)。 これはLPS-70734にも記載されています。
- 文字セット UTF-8 を使用することをお勧めします。
追加情報