コンテンツにスキップ

Porta On Prem インストールのトラブルシューティング

データベースのトラブルシューティングについては、group-replication-troubleshooting を参照してください。

インストール中: マイグレーションステップで SQLSTATE[HY000] [1130] Host '172.18.0.1' is not allowed to connect to this MySQL server

Section titled “インストール中: マイグレーションステップで SQLSTATE[HY000] [1130] Host '172.18.0.1' is not allowed to connect to this MySQL server”
Thu Dec 12 13:14:20 PST 2024: ERROR: Error occurred in command: 'docker exec -it porta bash -c "php artisan config:cache && yes | php artisan migrate && yes | php artisan db:seed --class=PermissionSeeder"' (Exit Code: 1) at line 47

このエラーは、インストールが失敗または中断された後に発生することがあります。通常、MySQL のセットアップが正しく完了しなかったことを示しています。

  • porta-run/access-mysql.bat ヘルパーを実行してこれを確認します。これが失敗する場合、porta ユーザーが存在せず、MySQL が誤って構成されています。

既存のインストールの場合は、update.bat を再度実行してみてください。これがまだ使用されていない新規インストールの場合は、install.bat から Porta を完全に再インストールしてみてください。

Container 'porta-socket' did not become ready within the timeout. によりインストールが中断する

Section titled “Container 'porta-socket' did not become ready within the timeout. によりインストールが中断する”

このエラーは、特定のエラーが原因ではなく、ソケットサーバーのコンテナが時間内に起動できない場合に発生することがあります。インストール/更新スクリプトを再実行すれば、正常に完了するはずです。

About セクションに表示される Porta のバージョンが変わっていないように見える

Section titled “About セクションに表示される Porta のバージョンが変わっていないように見える”

ブラウザが古いバージョンをキャッシュしている可能性があります。ブラウザを更新しても問題が解決しない場合は、ブラウザのキャッシュをクリアしてからページを更新してみてください。

Chrome の場合:

  • ブラウザのアドレスバーをクリックします(Porta はブラウザ内の一部のデフォルトキーボードショートカットを無効にしています)。
  • Ctrl+Shift+Delete を押します。
  • 基本タブで、
    • 期間として「全期間」を選択します。
    • 「Cookie と他のサイトデータ」のボックスをオンにします。
  • 「データを削除」をクリックします。
  • ページを更新します。

Porta バックエンドに登録されているバージョンと照合するには、次のヘルパーを実行します: "porta-onprem-bundle\porta-helpers\porta-checks\check-version.bat"

このバージョンが正しい場合、更新は成功しており、ブラウザが古いバージョン情報をキャッシュしているだけです。

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'superadmin@disguise.one' for key 'users.users_email_unique'

Section titled “SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'superadmin@disguise.one' for key 'users.users_email_unique'”

このエラーは通常、同じマシンでインストールスクリプトが複数回実行された場合に発生します。動作には影響しないため、通常どおりインストール手順を続行できます。

Illuminate\Database\QueryException - SQLSTATE[HY000] [2002] Connection refused

Section titled “Illuminate\Database\QueryException - SQLSTATE[HY000] [2002] Connection refused”

インストールスクリプトが変更を加えようとする前に、データベースの実行/構成が完了していないことがあります。この場合は、WSL ターミナルで次のコマンドを実行してください。

初回インストールの場合: 設定を行い、データベースを初期化してデータ挿入を実行します。

  1. 設定キャッシュヘルパーを実行します: porta-onprem-bundle\porta-helpers\porta-run\cache-api-config.bat
  2. シードヘルパーを実行します: porta-onprem-bundle\porta-helpers\porta-database\actions\caution\migrate-or-seed.bat
    1. プロンプトが表示されたら、Windows ユーザーを入力または確認します。
    2. プロンプトが表示されたら、WSL ユーザーを入力または確認します。
    3. Should the database be migrated? には「y」と答えます。
    4. Should the database be seeded? には「y」と答えます。

更新の場合: 設定を行い、データベースを初期化します。

  1. 設定キャッシュヘルパーを実行します: porta-onprem-bundle\porta-helpers\porta-run\cache-api-config.bat
  2. シードヘルパーを実行します: porta-onprem-bundle\porta-helpers\porta-database\actions\caution\migrate-or-seed.bat
  3. プロンプトが表示されたら、Windows ユーザーを入力または確認します。
  4. プロンプトが表示されたら、WSL ユーザーを入力または確認します。
  5. Should the database be migrated? には「y」と答えます。
  6. Should the database be seeded? には「n」と答えます。

The command ‘docker’ could not be found in this WSL 2 distro

Section titled “The command ‘docker’ could not be found in this WSL 2 distro”

このエラーが 'ERROR: Error occurred in command: 'docker load -i "$PORTA_IMAGES_TAR"' (Exit Code: 1) at line 39' とともに表示される場合:

  • Docker Desktop が実行されていることを確認します。タスクバーまたはシステムトレイに Docker アイコンが表示されているはずです。
    • 実行されているように見える場合は、リソースセーバーモードになっている可能性があります。システムトレイで Docker アイコンを右クリックして「restart」を選択し、再度試してください。

上記がうまくいかない場合は、Ubuntu 22.04 がデフォルトの Linux ディストロとして設定されていることを確認してください: Porta Local Development Setup | Set default distro

Warning: Redis connection could not be made to ‘redis://localhost:6379’ : Error: connect ECONNREFUSED 127.0.0.1:6379

Section titled “Warning: Redis connection could not be made to ‘redis://localhost:6379’ : Error: connect ECONNREFUSED 127.0.0.1:6379”
  1. porta-helpers/porta-run/sysadmin/stop-container.ps1 でソケットサーバーのコンテナを停止し、porta-socket コンテナを選択します。
  2. porta-helpers/porta-run/sysadmin/restart-container.ps1 で Redis コンテナが起動していることを確認し、porta-redis コンテナを選択します。
  3. Redis コンテナが実行されたら、porta-helpers/porta-run/sysadmin/restart-container.ps1 でソケットサーバーのコンテナを起動(または再起動)し、porta-socket コンテナを選択します。

line 2: $'\r': command not found or /bin/bash^M: bad interpreter: No such file or directory

Section titled “line 2: $'\r': command not found or /bin/bash^M: bad interpreter: No such file or directory”

これは、bash スクリプト内の Windows 改行コードが原因です。ヘルパー porta-helpers/porta-run/sysadmin/fix-crlf.bat を実行してから、再度試してください。

ERROR 3093 (HY000) at line 1: The group_replication_group_name cannot be changed when Group Replication is running

Section titled “ERROR 3093 (HY000) at line 1: The group_replication_group_name cannot be changed when Group Replication is running”

このエラーは、すでに Porta マシンとして設定済みのマシンでインストールスクリプトを実行した場合に発生することがあります。

ヘルパー porta-helpers/porta-run/sysadmin/restart-container.ps1 を使用してデータベースコンテナを選択し、再起動するだけです。次に、ヘルパー /porta-helpers/porta-database/follow-database-log.bat を使用してコンテナのログを表示し、レプリケーションが正しく開始されることを確認します。最終的に次のようなメッセージが表示されるはずです。

[System] [MY-011490] [Repl] Plugin group_replication reported: 'This server was declared online within the replication group.'

これがメインマシンで発生した場合は、データベースのシードが必要になることもあります。ヘルパー porta-helpers/porta-database/view-database-users.bat を使用して、登録されているユーザーがいるか確認してください。結果が空の場合は、シードヘルパーを実行し、マイグレーションとシードに「y」と入力してデータベースをシードします: porta-onprem-bundle\porta-helpers\porta-database\actions\caution\migrate-or-seed.bat

これがメインマシンで結果が空の場合は、シードヘルパーを実行してデータベースをシードします: porta-onprem-bundle\porta-helpers\porta-database\actions\caution\migrate-or-seed.bat

  1. プロンプトが表示されたら、Windows ユーザーを入力または確認します。
  2. プロンプトが表示されたら、WSL ユーザーを入力または確認します。
  3. Should the database be migrated? には「n」と答えます。
  4. Should the database be seeded? には「y」と答えます。

SQLSTATE[HY000]: General error: 1290 The MySQL server is running with the —read-only option

Section titled “SQLSTATE[HY000]: General error: 1290 The MySQL server is running with the —read-only option”

このエラーが Porta ウェブアプリに表示される場合、この Porta インスタンスはプライマリデータベースに接続されていません。データベースが最近ダウンして Porta がまだ復旧していない場合や、プライマリがブートストラップされていない場合に、この問題が発生する可能性があります。

Porta は通常数秒以内に自動的に復旧しますが、復旧しない場合は次の手順を実行できます。

  1. ヘルパー porta-helpers/porta-database/view-ALL-group-repl-status.bat を使用してグループメンバーを表示し、次を確認します。

    • 少なくとも 2 つのメンバーの MEMBER_STATEONLINE であること。
    • MEMBER_ROLEPRIMARY のメンバーが 1 つだけであること。
    • MEMBER_ROLEPRIMARY のメンバーの MEMBER_STATEONLINE であること。

    ヘルパーを実行すると、次のような結果になります。

    Terminal window
    +---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
    | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
    +---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
    | group_replication_applier | 1a351ce3-ba19-11ee-9e59-0242ac120002 | 192.168.50.163 | 3306 | ONLINE | PRIMARY | 8.0.32 | XCom |
    | group_replication_applier | d7c0535c-ba19-11ee-9f28-0242ac140002 | 192.168.50.20 | 3307 | ONLINE | SECONDARY | 8.0.32 | XCom |
    | group_replication_applier | e4a0ac63-ba19-11ee-9f54-0242ac150002 | 192.168.50.42 | 3308 | ONLINE | SECONDARY | 8.0.32 | XCom |
    +---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
  2. MEMBER_ROLEPRIMARY のメンバーがない場合は、Replication Group Member Recovery のドキュメントで説明されているとおり、Bootstrap the Replication Group を行う必要があります。

  3. view-ALL-group-repl-status.bat ヘルパーが MEMBER_ROLEPRIMARYMEMBER_STATEONLINE のメンバーを報告しているにもかかわらずエラーが続く場合は、ヘルパー porta-helpers/porta-database/view-database-log.bat を実行してデータベースログにエラーがないか確認してください。

  4. 最近のエラーがない場合は、問題のマシンで Porta がプライマリ接続を正しく検出しているか、ヘルパー porta-helpers/porta-checks/check-primary-connection.bat を実行して確認します。

    次のような結果になります。

    Terminal window
    Running health check...
    Running check: Primary Database Connection...
    Ok: Found online primary: {"member_host":"192.168.50.163", member_port":3306}
    All done!
  5. 上記のコマンドが Ok: Found online primary... を返し、コマンドが表示した member_host が上記の view-ALL-group-repl-status ヘルパーの MEMBER_HOST と一致する場合、問題は Porta のアクティブ接続がプライマリ接続に設定されていないことである可能性が高いです。

  6. Porta のアクティブ接続を確認するには、ヘルパー porta-helpers/porta-checks/check-env-connections.bat を実行します。

    次のような結果になります。

    DB_HOST_1=192.168.50.163
    DB_HOST_2=192.168.50.20
    DB_HOST_3=192.168.50.42
    DB_HOST="${DB_HOST_3}"

    DB_HOST 変数は、プライマリデータベースの DB_HOST_# 変数に設定されている必要があります。

    この例では、プライマリデータベースの MEMBER_HOST は 192.168.50.163 で、これは DB_HOST_1 の値です。したがって DB_HOST は実際には DB_HOST_3 ではなく DB_HOST_1 に設定されるべきです。

  7. これを、ヘルパー porta-helpers/porta-checks/check-default-connection.bat で構成にキャッシュされているデフォルト接続と相互参照します。

    次のような結果になります。

    'database' =>
    array (
    'default' => 'mysql-3',

    'default' => の値の数値の接尾辞は、DB_HOST が設定されている DB_HOST_# 変数の接尾辞と一致する必要があります。

    この例では両方とも 3 なので、構成は正しくキャッシュされていますが、プライマリ接続には設定されていません。

check-primary-connection.bat の最初の実行で、プライマリデータベースへの接続変更がトリガーされているはずです。

When running backup tool command: Backup failed because Parameter 'host' cannot be empty...

Section titled “When running backup tool command: Backup failed because Parameter 'host' cannot be empty...”

このエラーは、構成がキャッシュされていないマシンでバックアップツールのコマンドを実行した場合に発生することがあります。

これを修正するには、ヘルパー porta-helpers/porta-run/cache-api-config.bat を実行します。

バックアップツールのコマンドを再度実行すれば、動作するはずです。

Error on Login: “500 Internal Server Error” / “Could not create token: Key provided is shorter than 256 bits”

Section titled “Error on Login: “500 Internal Server Error” / “Could not create token: Key provided is shorter than 256 bits””

この一般的なエラーが発生した場合は、ヘルパー porta-helpers/porta-run/sysadmin/generate-secret.bat を使用して新しいトークンシークレットを生成する必要があるかもしれません。

その後、再度 Porta にログインしてみてください。