Cloud SQL for PostgreSQL のエラー メッセージ

このページでは、Cloud SQL で表示されるエラー メッセージについて説明します。

概要

Cloud SQL のエラー メッセージはさまざまな原因で発生し、さまざまな場所に表示されます。エラー メッセージには、データベース エンジン自体、Cloud SQL サービス、クライアント アプリケーション、Cloud SQL Admin API の呼び出しから返されるものがあります。

このページでは、Cloud SQL でよく発生するエラーの一部をご紹介します。探しているエラーコードやメッセージが見つからない場合は、ここでソースの参照資料を探してください。

表示されているエラー メッセージの参照資料が見つからない場合は、関連する経験のある他のユーザーの投稿を以下の場所で検索することもできます。

オペレーション エラー

A | B | C | D | E | F | G | I | L | M | N | O | P | Q | R | S | T | U | W

エラー メッセージ トラブルシューティング
ユーザー 'XXX'@'XXX'(使用パスワード: XXX)のアクセスが拒否された。 次のようないくつかの原因が考えられます。
  • ユーザー名(またはパスワード)が正しくない。
  • ユーザーが @XXX 以外の URL から接続している。
  • ユーザーが、接続しようとしているデータベースに対する適切な権限を持っていない。

次のことをお試しください。

  • ユーザー名と対応するパスワードを確認します。
  • 接続元をチェックして、ユーザーがアクセス権を持っている URL と一致しているかどうかを確認します。
  • データベース内のユーザーの権限をチェックします。
割り振られた IP 範囲がネットワークで見つからない。 割り振り範囲を変更または削除した後に VPC ピアリングが更新されませんでした。

プライベート接続を変更する必要があります。次のコマンドを使用します。--force 引数を必ず使用してください。

gcloud services vpc-peerings update \
--network=VPC_NETWORK \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force
エラー メッセージ トラブルシューティング
不正なリクエスト。 このメッセージにはさまざまな原因があります。最も一般的なのは Illegal Argument です。この場合、リクエストで間違った引数を使用しているか、引数の値が無効です。他の多くの原因については、エラー メッセージに有用なヒントが含まれている場合があります。

Illegal Argument の場合、各引数が許可され、引数の各値が有効であることを確認します。他のすべての原因については、ログファイルをチェックして、詳細情報を確認してください。

エラー メッセージ トラブルシューティング
CreateConnection で割り振り範囲を変更することはできません。UpdateConnection を使用してください。 割り振り範囲を変更または削除した後に VPC ピアリングが更新されませんでした。

プライベート接続を変更する必要があります。次のコマンドを使用します。--force 引数を必ず使用してください。

gcloud services vpc-peerings update \
--network=VPC_NETWORK \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force
ピアによって接続がリセットされた。

エクスポートを実行しようとして、Cloud Storage が特定の時間枠内にデータを受信しない場合、接続がリセットされます。

pg_dump を使用して手動でエクスポートしてみてください。

Constraints/sql.restrictAuthorizedNetworks。 クローン作成のオペレーションが、Authorized Networks 構成によってブロックされている。Authorized Networks は、Google Cloud コンソールの [接続] セクションでパブリック IP アドレス用に構成されており、セキュリティに関する考慮事項により、クローン作成が許可されていません。

可能であれば、Cloud SQL インスタンスからすべての Authorized Networks エントリを削除します。それができない場合は、Authorized Networks エントリなしでレプリカを作成します。

エラー メッセージ トラブルシューティング
データベース user が存在しない。 gcloud sql connect --user はデフォルトの postgres ユーザーでのみ機能します。

デフォルト ユーザーで接続してから、ユーザーを変更します。

ディスクに空きがない。 レプリカの作成中にプライマリ インスタンスのディスクの空きがなくなる可能性があります。

プライマリ インスタンスを編集して、より大きなディスクサイズにアップグレードします。

エラー メッセージ トラブルシューティング
サブネットワークを作成できない。 IP 範囲にはこれ以上使用可能なアドレスはありません。

割り振られた IP 範囲に空きブロックが見つかりませんでした。このサービス プロバイダに新しい範囲を割り振ってください。

割り振り済みの IP 範囲にこれ以上使用可能なアドレスがない。

次のようなシナリオが考えられます。

  • プライベート サービス接続に割り振られた IP 範囲のサイズが /24 より小さい。
  • プライベート サービス接続に割り振られた IP 範囲のサイズが、Cloud SQL インスタンスの数に対して小さすぎる。
  • インスタンスを複数のリージョンで作成すると、割り振られた IP 範囲のサイズに関する要件が大きくなります。割り振られた範囲のサイズをご覧ください。

上のシナリオに該当する場合は、プライベート サービス接続に対して既存の IP 範囲を拡張するか、追加の IP 範囲を割り振ります

新しい範囲を割り振る場合は、既存の割り振りと重複する割り振りを作成しないように注意してください。

新しい IP 範囲を作成した後、次のコマンドを使用して VPC ピアリングを更新します。

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK
--project=PROJECT_ID \
--force

既存の割り振りを拡張する場合は、割り振り範囲を増やすのみとし、減らさないように注意してください。たとえば、元の割り振りが 10.0.10.0/24 だった場合、新しい割り振りを少なくとも 10.0.10.0/23 に設定します。

一般的に、/24 の割り振りから開始する場合は、各条件(追加のインスタンス タイプのグループ、追加のリージョン)で /mask を 1 つずつ減らすのが基本的なルールです。たとえば、同じ割り振りで両方のインスタンス タイプのグループを作成しようとしている場合も、/24 から /23 にするだけで十分です。

既存の IP 範囲を拡張した後、次のコマンドを使用して VPC ピアリングを更新します。

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
エラー メッセージ トラブルシューティング
(gcloud.sql.connect)クライアントには ipv6 接続がなく、データベース インスタンスには ipv4 アドレスがない。 Cloud Shell を使用してプライベート IP インスタンスに接続しようとしています。

現時点では、プライベート IP アドレスのみを持つインスタンスに Cloud Shell から接続することはできません。

エラー メッセージ トラブルシューティング
内部エラー。 プロジェクトに、この機能に必要なサービス ネットワーキングのサービス アカウントがない可能性があります。

サービスの権限を修復するには、Service Networking API を無効にして、5 分待ってから再度有効にします。

無効なリクエスト: インスタンスのサービス ネットワーキング構成が不正。 プロジェクトで Service Networking API が有効になっていません。

プロジェクトで Service Networking API を有効にします。Cloud SQL インスタンスにプライベート IP アドレスの割り当てを試行中で、共有 VPC を使用しているときにこのエラーが表示される場合は、ホスト プロジェクトに対して Service Networking API も有効にする必要があります。

エラー メッセージ トラブルシューティング
ネットワークの関連付けに失敗した。 プロジェクトで Service Networking API が有効になっていません。

プロジェクトで Service Networking API を有効にします。Cloud SQL インスタンスにプライベート IP アドレスの割り当てを試行中で、共有 VPC を使用しているときにこのエラーが表示される場合は、ホスト プロジェクトに対して Service Networking API も有効にする必要があります。

エラー メッセージ トラブルシューティング
別のオペレーションがすでに進行中だったので、このオペレーションは失敗しました。 Cloud SQL のほとんどのオペレーションが同時に実行されています。一度に実行できる実行は 1 つだけです。

前のオペレーションが終了するのを待ってから、別のオペレーションを開始します。

このインスタンスに対するオペレーションが無効。 このエラーは、instances.restoreBackup に対する API 呼び出しから返されます。これは、バックアップ サイズ(YY GB)よりストレージ サイズ(XX GB)が小さいインスタンスには、バックアップから復元できないことを意味します。

ターゲット インスタンスを編集して、ストレージ サイズを増やします。

エラー メッセージ トラブルシューティング
ユーザー「postgres」のパスワード認証に失敗しました。 新しい Cloud SQL for PostgreSQL インスタンスを作成すると、デフォルトの管理ユーザー postgres が作成されますが、パスワードは作成されません。このユーザーでログインできるようにするには、このユーザーのパスワードを設定する必要があります。

エラー メッセージ トラブルシューティング
割り当てを超えています。 1 分あたりまたは 1 日あたりの割り当ての上限に達しました。Cloud SQL の割り当てと上限を確認します。

Google Cloud Console から割り当ての増加をリクエストします。

エラー メッセージ トラブルシューティング
残りの接続スロットが予約済み。 最大接続数に達しました。

max_connections フラグの値を増やしてください。データベース フラグを構成するをご覧ください。

リクエストに有効な API キーがない。 有効なサービス アカウント キーの JSON ファイルがないか、想定されている場所に保存されていない可能性があります。

GOOGLE_APPLICATION_CREDENTIALS 環境変数に設定されている場所に有効なサービス アカウント キーの JSON ファイルがあること、変数が正しい場所を指していることを確認します。

エラー メッセージ トラブルシューティング
SSL エラー: 無効なパディング。 サーバー証明書エラー。

新しいサーバー証明書を作成して、ローテーションします。

システムエラーが発生した。
  • ユーザーが必要なすべての Cloud Storage 権限を持っていない可能性があります。
  • データベース テーブルが存在しない可能性があります。

次のことをお試しください。

  • バケットに対して少なくとも WRITER 権限があり、エクスポート ファイルに対して READER 権限があることを確認してください。Cloud Storage のアクセス制御の構成について詳しくは、アクセス制御リストの作成と管理をご覧ください。
  • テーブルが存在していることを確認します。テーブルが存在している場合は、ストレージ バケットに対して適切な権限があることを確認します。
エラー メッセージ トラブルシューティング
テーブルの定義が変更された。 エクスポート処理中にテーブルに対して変更が発生しました。

エクスポート オペレーション中に次のステートメントを使用すると、ダンプ トランザクションが失敗する可能性があります。

  • ALTER TABLE
  • CREATE TABLE
  • DROP TABLE
  • RENAME TABLE
  • TRUNCATE TABLE

これらのステートメントのいずれかをダンプ オペレーションから削除します。

一時ファイルサイズが temp_file_limit を超えた。 データベースの使用量に対して temp_file_limit フラグの値が小さすぎます。

temp_file_limit サイズを増やします。データベース フラグを構成するをご覧ください。

(タイムアウト)エクスポート中。 CSV 形式と SQL 形式ではエクスポート方法が異なります。SQL 形式にはデータベース全体が含まれ、完了までに時間がかかる可能性があります。

CSV 形式を使用して複数の小規模なエクスポート ジョブを実行し、各オペレーションのサイズと長さを減らします。

接続が多すぎる。 max_connections フラグの値が大きすぎると、このエラーが発生する原因になる可能性があります。これは、シーケンスから外れたフラグを有効にした場合にも発生します。

max_connections フラグの値を小さくします。または、フラグを削除した後に hard drain を行うためカスタマー サポートに連絡します。これにより、フラグや設定を使用せずに、新しい構成を使用して別のホストでインスタンスが再起動します。

エラー メッセージ トラブルシューティング
接続失敗。 認証はさまざまなレベルで行われるため、多くの原因が考えられます。
  • データベース レベルでは、データベース ユーザーが存在し、パスワードが一致している必要があります。
  • プロジェクト レベルでは、ユーザーに serviceusage.services.use 権限や cloudsql.instances.connect 権限などの適切な IAM 権限がない可能性があります。
  • ネットワーク レベルでは、Cloud SQL インスタンスでパブリック IP を使用している場合、接続のソース IP が承認済みネットワーク内に存在している必要があります。

次のことをお試しください。

  • ユーザーが存在していて、パスワードが一致することを確認します。
  • ユーザー アカウントに Service Usage Consumer ロールを割り当てます。このロールには権限 serviceusage.services.use が含まれています。
  • パブリック IP を使用する場合は、送信元 IP が承認済みネットワークに存在していることを確認します。
エラー メッセージ トラブルシューティング
x509: いずれの名前に対しても証明書が無効である。 既知の問題: 現時点では、Cloud SQL Proxy Dialer は Go 1.15 と互換性がありません。

修正されるまで、回避策が記載されている GitHub のディスカッションをご覧ください。

不明なエラー

次の表に、Unknown Error が発生する可能性がある既知のケースとその解決方法(可能な場合)を示します。このリストはすべてを網羅しているわけではありません。以下の表で該当するケースが見つからない場合は、Cloud SQL の公開バグトラッカーで確認してください。問題が見つからない場合は、レポートを送信するか、他のサポート オプションをご確認ください。

オペレーション 次のような問題が考えられます 次の方法をお試しください
ユーザーの追加 データベースにすでに存在するユーザーを追加しようとすると、このエラーが発生することがあります。 ユーザーがデータベースにまだ存在していないことを確認します。
バックアップ 自動バックアップ中または手動バックアップ中にこのエラーが表示される場合は、インスタンスのディスクに空きがない可能性があります。 一時ファイルのサイズが大きすぎる場合は、インスタンスを再起動してそのファイルを削除し、ディスクの空き容量を増やしてください。それ以外の場合は、インスタンスをより大きなディスクサイズにアップグレードする必要があります。
クローン このエラーは、選択したゾーンにリソース不足がある場合に発生することがあります。 リージョン内の別のゾーンを試すか、しばらくしてからもう一度お試しください。
インスタンスの作成
  • このエラーは、最近削除したインスタンスと同じ名前を再利用しようとすると発生します。
  • また、接続性が不安定で発生することもあります。
  • ログに、プロジェクトで Service Networking API が有効になっていないことが示される可能性があります。
  • このエラーは、複数のインスタンスの作成を並行して行おうとする場合にも確認されています。たとえば、Terraform スクリプトによってこの試みが可能になります。
  • 別の原因としては、特定のリソースが枯渇している、または割り当て上限を超過した可能性があります。ログで Quota 'INTERNAL_FORWARDING_RULES_WITH_TARGET_INSTANCE_PER_NETWORK' exceeded. Limit: 100.0 globally のようなエントリを探します。
  • このエラーは、IP 範囲に使用可能なアドレスがなくなった場合で、サブネットの作成に失敗すると発生することがあります。
  • インスタンス名を削除した後、1 週間は再利用できません。
  • 接続が断続的になっている場合は、再試行してください。
  • プロジェクトで Service Networking API を有効にします
  • 並列インスタンス作成スクリプトは、1 つのインスタンスの作成のみ成功します。各インスタンス作成オペレーションが完了してから次のインスタンスに進むよう、スクリプトを修正してください。
  • 新しい範囲を割り振ってください
レプリカの作成 ログファイルに、より具体的なエラーが示される可能性があります。 Cloud Logging のログを調べて、実際のエラーを確認します。

エラーが set Service Networking service account as servicenetworking.serviceAgent role on consumer project の場合は、Service Networking API を無効にしてから再度有効にします。これにより、プロセスの続行に必要なサービス アカウントが作成されます。

エラーが The instance creation failed due to a permission error with the CMEK key defined の場合は、鍵の設定とロケーションを確認してください。

エクスポート データベースを Cloud Storage バケットにエクスポートしようとしたときにこのエラーが表示された場合は、帯域幅の問題が原因で転送が失敗している可能性があります。 Cloud SQL インスタンスが Cloud Storage バケットとは異なるリージョンに存在している可能性があります。ある大陸から別の大陸へのデータの読み取りと書き込みではネットワークの使用量が多く、このような断続的な問題を引き起こす可能性があります。
フェイルオーバー(自動) 自動フェイルオーバー オペレーションでは、プライマリ インスタンスが応答可能な状態であることをサービスが検出すると、このエラー メッセージが生成されます。 この場合、何もする必要はありません。フェイルオーバーは不要なため、発生することはありません。
インポート インポート ファイルに、スーパーユーザー ロールを必要とするステートメントが含まれている可能性があります。 ファイルを編集して、スーパーユーザー ロールを必要とするステートメントを削除します。

Cloud SQL は一部のサードパーティ バイナリ(mysqld など)を使用するため、不明なエラー メッセージが生成されることがあります。このようなエラーはサードパーティのバイナリの内部エラーで、Cloud SQL の範囲外です。ただし、Cloud SQL のログファイルで具体的なエラーが確認できる場合があります。

また、不明なエラーコードの場合もあります。その場合、完全なメッセージは Unknown Error Code になります。