legacy-knowledge-base
公開されました Jul. 2, 2025

MySQL 5.5でLiferay 6.2を読み書き可能なデータベース分割でセットアップする場合

written-by

Brian Larson

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text
この記事では、JNDI接続と読み取り/書き込みの分割構成で、MySQL 5.5にLiferay 6.2バンドルをセットアップする方法について説明します。

解像度

1. 新しいバンドルを解凍します。

2. これらのプロパティをportal-ext.propertiesに記述してください(新しいデータベースを使用してください):

jdbc.default.jndi.name=jdbcLiferayWritePool
jdbc.read.jndi.name=jdbcLiferayReadPool
jdbc.write.jndi.name=jdbcLiferayWritePool
counter.jdbc.prefix=jdbc.write.
    spring.configs=\
        META-INF/base-spring.xml,\
        \
        META-INF/hibernate-spring.xml,\
        META-INF/infrastructure-spring.xml,\
        META-INF/management-spring.xml,\
        \
        META-INF/util-spring.xml,\
        \
        META-INF/jpa-spring.xml,\
        \
        META-INF/executor-spring.xml,\
        \
        META-INF/audit-spring.xml,\
        META-INF/cluster-spring.xml,\
        META-INF/editor-spring.xml,\
        META-INF/jcr-spring.xml,\
        META-INF/ldap-spring.xml,\
        META-INF/messaging-core-spring.xml,\
        META-INF/messaging-misc-spring.xml,\
        META-INF/mobile-device-spring.xml,\
        META-INF/notifications-spring.xml,\
        META-INF/poller-spring.xml,\
        META-INF/rules-spring.xml,\
        META-INF/scheduler-spring.xml,\
        META-INF/search-spring.xml,\
        META-INF/workflow-spring.xml,\
        \
        META-INF/counter-spring.xml,\
        META-INF/mail-spring.xml,\
        META-INF/portal-spring.xml,\
        META-INF/portlet-container-spring.xml,\
        META-INF/staging-spring.xml,\
        META-INF/virtual-layouts-spring.xml,\
        \
        META-INF/monitoring-spring.xml,\
        \
        META-INF/dynamic-data-source-spring.xml,\
        #META-INF/shard-data-source-spring.xml,\
        #META-INF/memcached-spring.xml,\
        \ 

3. このリソース設定をROOT.xmlに追加してください:

<Resource
    name="jdbcLiferayReadPool"
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://[IP of VM with Slave DB]:3306/[DB name]?useUnicode=true&amp;characterEncoding=UTF-8"
    username="root"
    password="liferay"
    maxActive="20"
/>
<Resource
    name="jdbcLiferayWritePool"
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost/[DB name]?useUnicode=true&amp;characterEncoding=UTF-8"
    username="root"
    password="liferay"
    maxActive="20"
/>

4. MySQL 5.5がインストールされた別のVMを実行します。 これにより、スレーブデータベースサーバーが実行されます。

5. マスターデータベースサーバーのmy.iniの「mysqld」セクションに、以下の設定が含まれていることを確認してください。 マスターサーバーは、バイナリログを使用してスレーブにレプリケーション情報を送信します。 server-id は、1 から 4294967295 までの任意の整数です:

log-bin=mysql-bin
binlog_format=row
server-id=1

6. スレーブDBサーバーのmy.ini mysqldセクションに、レプリケーションスレーブのサーバーID番号を設定する。 マスターと異なることを確認する:

server-id=2

7. マスターDBサーバーとスレーブDBサーバーを再起動し、my.iniの設定変更が反映されるようにします。

8. あとは、バイナリログでマスターの現在位置をつかむ。 その前に、マスターのテーブルへの書き込みを停止する必要があります。 マスターDBサーバーで、以下のコマンドを実行します。

mysql> FLUSH TABLES WITH READ LOCK;

で、この端子を開けておく。

9. 別のコマンドプロンプトを開き、マスター上で実行する

mysql > SHOW MASTER STATUS;

後で参照できるように、ファイル名とポジション番号を記録しておきます。

10. これで、Masterのテーブルの読み取りロックを解除することができました。 オンマスターラン

mysql> UNLOCK TABLES;

11. 次に、スレーブのレプリケーションサーバーをマスターに向ける必要があります。 その前に、スレーブDBのmysqlターミナルで、以下のように実行します。

mysql> stop slave;

12. スレーブデータベースでこのステートメントを実行し、マスターサーバーを指定します。 実際のホスト名、ユーザー名、パスワードなどを挿入する必要があります:

mysql> CHANGE MASTER TO
    ->     MASTER_HOST='master_host_name',
    ->     MASTER_USER='replication_user_name',
    ->     MASTER_PASSWORD='replication_password',
    ->     MASTER_LOG_FILE='recorded_log_file_name',
    ->     MASTER_LOG_POS='recorded_log_position';

13. スレーブのmysqlのターミナルで実行します:

mysql> start slave;

注:「show slave statusG」でスレーブの状態を確認することができます。 Slave_IO_RunningとSlave_SQL_Runningの両方がyesになっていることを確認し、ログ位置が「show master status」に記載されているものと同じであることを確認します。

14. マスターDBサーバーのあるローカルマシンに、ROOT.xmlで命名したデータベースを作成します。 スレーブサーバーで確認して、レプリケーションされたことを確認する。

15. Liferayを起動し、アプリサーバーのログに「Reading plugin package for root context」が表示された後、スレーブDBのgeneral query logを確認する。

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base