トラブルシューティングとデバッグ
Hyperdriveを使用してデータベースに接続する際に一般的に発生するエラーのトラブルシューティングとデバッグ。
新しいHyperdrive設定を作成する際、または既存の設定に関連する接続パラメータを更新する際、Hyperdriveは設定を作成または更新する前にバックグラウンドでデータベースへのテスト接続を実行します。
Hyperdriveはまた、データベースにクエリを送信できることを確認するために、PostgreSQLでは空のテストクエリ(;)を発行します。
| エラーコード | 詳細 | 推奨される修正 |
|---|---|---|
2008 | ホスト名が無効です。 | Hyperdriveはデータベースのホスト名を解決できませんでした。パブリックDNSに存在することを確認してください。 |
2009 | ホスト名がパブリックIPアドレスに解決されないか、IPアドレスがパブリックアドレスではありません。 | HyperdriveはパブリックIPアドレスにのみ接続できます。10.1.5.0や192.168.2.1のようなプライベートIPアドレスは現在サポートされていません。 |
2010 | ホスト:ポートに接続できません。 | Hyperdriveはホスト名にルーティングできませんでした。パブリックIPアドレスに解決されるパブリックDNSレコードがあることを確認してください。ホスト名が誤っていないか確認してください。 |
2011 | 接続が拒否されました。 | ネットワークファイアウォールまたはアクセス制御リスト(ACL)がHyperdriveからのリクエストを拒否している可能性があります。パブリックインターネットからの接続を許可していることを確認してください。 |
2012 | データベースがTLS(SSL)をサポートしていません。 | Hyperdriveは接続するためにTLS(SSL)を必要とします。データベースでTLSを設定してください。 |
2013 | 無効なデータベース認証情報。 | ユーザー名が正しい(存在する)こと、パスワードが正しい(大文字と小文字を区別)ことを確認してください。 |
2014 | 指定されたデータベース名が存在しません。 | Hyperdriveに接続するように依頼したデータベース(テーブルではなく)の名前が存在することを確認してください。 |
2015 | 一般的なエラー。 | Hyperdriveは接続に失敗し、理由を特定できませんでした。Cloudflareが調査できるようにサポートチケットを開いてください。 |
2016 | テストクエリが失敗しました。 | Hyperdriveが接続しているユーザーが指定されたデータベースに対して読み取りおよび書き込みクエリを発行する権限を持っていることを確認してください。 |
Hyperdriveは実行時にエラーを返すこともあります。これは初期接続の設定中、またはドライバーによって送信されたクエリや他のワイヤプロトコルコマンドに応答して発生する可能性があります。
これらのエラーはErrorResponseワイヤプロトコルメッセージとして返され、ほとんどのドライバーは責任のあるクエリからスローするか、エラーイベントをトリガーすることで処理します。
Hyperdriveのエラーで、PostgreSQLによって文書化されたエラーメッセージコードと1:1でマッピングされないものは、58000エラーコードを使用します。
Hyperdriveはまた、データベースによって送信されたErrorResponseワイヤプロトコルメッセージに遭遇することがあります。Hyperdriveは可能な限りこれらのエラーを変更せずに通過させます。
| エラーメッセージ | 詳細 | 推奨される修正 |
|---|---|---|
内部エラー。 | 当社側に何か問題があります。 | Hyperdriveに影響を与える進行中のインシデントがないか確認し、Cloudflareサポートに連絡してください。 |
プールから接続を取得できませんでした。 | Hyperdriveはデータベースへの接続を待っている間にタイムアウトしたか、全く接続できません。 | このエラーが断続的に発生する場合、Hyperdriveプールが枯渇しています。これは、ワーカーによって接続が長時間保持されているためです。さまざまな問題が原因となる可能性がありますが、長時間実行されるクエリ/トランザクションが一般的な原因です。 |
サーバー接続の試行が失敗しました: connection_refused | Hyperdriveはオリジナルのデータベースへの新しい接続を作成できません。 | ネットワークファイアウォールまたはアクセス制御リスト(ACL)がHyperdriveからのリクエストを拒否している可能性があります。パブリックインターネットからの接続を許可していることを確認してください。時には、接続制限を超えたときにデータベースホストプロバイダーが受信接続を拒否することが原因となることがあります。 |