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

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

概要

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

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

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

不明なエラー

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

オペレーション 次のような問題が考えられます 次の方法をお試しください
バックアップ 自動バックアップ中または手動バックアップ中にこのエラーが表示される場合は、インスタンスのディスクに空きがない可能性があります。 一時ファイルのサイズが大きすぎる場合は、インスタンスを再起動してそのファイルを削除し、ディスクの空き容量を増やしてください。それ以外の場合は、インスタンスをより大きなディスクサイズにアップグレードする必要があります。
クローン このエラーは、選択したゾーンにリソース不足がある場合に発生することがあります。 リージョン内の別のゾーンを試すか、しばらくしてからもう一度お試しください。
インスタンスの作成
  • このエラーは、最近削除したインスタンスと同じ名前を再利用しようとすると発生します。
  • また、接続が不安定で発生することもあります。
  • ログに、プロジェクトで Service Networking API が有効になっていないことが示される可能性があります。
  • インスタンス名を削除した後、1 週間は再利用できません。
  • 接続が断続的になっている場合は、再試行してください。
  • プロジェクトで Service Networking API を有効にします
レプリカの作成 ログファイルに、より具体的なエラーが示される可能性があります。 Cloud Logging のログを調べて、実際のエラーを確認します。エラーが set Service Networking service account as servicenetworking.serviceAgent role on consumer project の場合は、Service Networking API を無効にしてから再度有効にします。これにより、プロセスの続行に必要なサービス アカウントが作成されます。
エクスポート データベースを Cloud Storage バケットにエクスポートしようとしたときにこのエラーが表示された場合は、帯域幅の問題が原因で転送が失敗している可能性があります。 Cloud SQL インスタンスが Cloud Storage バケットとは異なるリージョンに存在している可能性があります。ある大陸から別の大陸へのデータの読み取りと書き込みではネットワークの使用量が多く、このような断続的な問題を引き起こす可能性があります。
フェイルオーバー(レガシー) レガシー フェイルオーバー構成を使用している場合、フェイルオーバー レプリカマシンのサイズが小さく、フェイルオーバーを処理できないと、この問題が発生することがあります。 最適な解決策は、現在の高可用性構成に移行することです。それ以外の場合、フェイルオーバー レプリカをより大きなマシンに更新する必要があります。
フェイルオーバー(自動) 自動フェイルオーバー オペレーションでは、プライマリ インスタンスが応答可能な状態であることをサービスが検出すると、このエラー メッセージが生成されます。 この場合、何もする必要はありません。フェイルオーバーは不要なため、発生することはありません。
インポート インポート ファイルに、スーパーユーザー ロールを必要とするステートメントが含まれている可能性があります。 ファイルを編集して、スーパーユーザー ロールを必要とするステートメントを削除します。

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

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

その他のエラー

接続が中断された

エラー メッセージ Got an error reading communication packets または Aborted connection xxx to db: DB_NAME が表示されます。

次のような問題が考えられます

Aborted connection エラーは、アプリケーションの接続が正しく終了されていないことを示します。

次の方法をお試しください

以下の条件を確認してください。

  • アプリケーションが終了前に mysql_close() を呼び出さなかった。
  • 通信エラー
  • アプリケーションは、サーバーにリクエストを発行せずに、wait_timeout または interactive_timeout で指定された秒数を超えてスリープしていた可能性がある。セクション 5.1.7、サーバー システム変数をご覧ください。
  • データ転送の途中でアプリケーションが突然終了した。
  • max_allowed_packet 変数の値が小さすぎるか、クエリで mysqld に割り当てられた量より多くのメモリが必要。この問題は、max_allowed_packet フラグの値を大きくすることで解決できます。


不正なリクエスト

エラー メッセージ HTTP Error 400 Bad Request が表示されます。

次のような問題が考えられます

不正なリクエストにはさまざまな原因があります。最も一般的な原因の 1 つは無効な引数です。この場合、リクエストで間違った引数を使用しているか、引数の値が無効です。他の多くの原因については、エラー メッセージに有用なヒントが含まれている場合があります。

次の方法をお試しください

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


ユーザーのアクセスが拒否された

エラー メッセージ Access denied for user 'XXX'@'XXX' (using password: XXX) が表示されます。

次のような問題が考えられます

次のようないくつかの原因が考えられます。

  • ユーザー名(またはパスワード)が正しくない。
  • ユーザーが @XXX 以外の URL から接続している。
  • ユーザーが、接続しようとしているデータベースに対する適切な権限を持っていない。

次の方法をお試しください

  • ユーザー名と対応するパスワードを確認します。
  • 接続元をチェックして、ユーザーがアクセス権を持っている URL と一致しているかどうかを確認します。
  • データベース内のユーザーの権限をチェックします。

ディスクに空きがない

エラー メッセージ Disk is full が表示されるか、ディスク容量が不足しています。

次のような問題が考えられます

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

次の方法をお試しください

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


フラグを有効にするとインスタンスがクラッシュする

フラグを有効にすると、インスタンスがパニックとクラッシュの間でループします。

次のような問題が考えられます

max_connections フラグの値が大きすぎると、このエラーが発生することがわかっています。

次の方法をお試しください

max_connections フラグの値が大きすぎると、インスタンスがすべての接続に対応できなくなり、Error 1040: Too many connections とハートビートの障害が発生する可能性があります。カスタマー サポートに連絡して、フラグの削除をリクエストしてから hard drain を送信します。これにより、フラグや設定を使用せずに、新しい構成を使用して別のホストでインスタンスが再起動します。


アップグレード中の致命的なエラー

インスタンスのリソースをアップグレードすると、エラー メッセージ ERROR_INTERNAL_FATAL が表示されます。

次のような問題が考えられます

さまざまな原因が考えられます。

次の方法をお試しください

ログに詳細情報が表示される場合があります。それ以外の場合は、カスタマー サポートに連絡して、インスタンスを強制的に再作成してください。


HTTP エラー 408:(タイムアウト)エクスポート中

Cloud SQL でエクスポート ジョブを実行しているときに、エラー メッセージ HTTP Error 408 (Timeout) が表示されます。

次のような問題が考えられます

CSV 形式と SQL 形式ではエクスポート方法が異なります。SQL 形式にはデータベース全体が含まれ、完了までに時間がかかる可能性があります。CSV 形式を使用して、エクスポート オペレーションに含めるデータベースの要素を指定できます。

次の方法をお試しください

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


HTTP エラー 409

エラー メッセージ HTTP Error 409 in a Terraform script または Error 409 Operation failed because another operation was already in progress が表示されます。

次のような問題が考えられます

  1. Terraform スクリプトをチェックします。このスクリプトでは、各オペレーションが完了するまで待ってから次のオペレーションを開始する必要があります。
  2. HTTP Error 409: Operation failed because another operation was already in progress
  3. 名前の再利用の待機期間が終了する前に、最近削除されたインスタンスと同じ名前を再利用しようとしています。

次の方法をお試しください

  1. Terraform スクリプトを実行する場合は、各インスタンスのオペレーションが完了するまで実行を停止します。スクリプトをポーリングして、前のオペレーション ID に対して 200 が返されるまで待ちます。それ以外の場合は、現在実行中のオペレーションが完了するまで待ちます。
  2. インスタンスを削除した後、新しいインスタンスに同じ名前を再利用できるようになるまで 1 週間待つ必要があります。

インスタンスを削除できない

エラー メッセージ

エラー メッセージ ERROR: (gcloud.sql.instances.delete) HTTP Error 409: The instance or operation is not in an appropriate state to handle the request が表示されるか、インスタンスに INSTANCE_RISKY_FLAG_CONFIG フラグ ステータスがあります。

次のような問題が考えられます

  1. Another operation is in progress
  2. INSTANCE_RISKY_FLAG_CONFIG 警告は、少なくとも 1 つの BETA フラグが使用されるたびにトリガーされます。

次の方法をお試しください

  1. Cloud SQL オペレーションは同時には実行されません。他のオペレーションが完了するのをお待ちください。
  2. 危険なフラグ設定を削除して、インスタンスを再起動します。

内部エラー

エラー メッセージ {"ResourceType":"sqladmin.v1beta4.instance", "ResourceErrorCode":"INTERNAL_ERROR","ResourceErrorMessage":null} が表示されます。

次のような問題が考えられます

サービス プロジェクトに、この機能に必要なサービス ネットワーキングのサービス アカウントがない可能性があります。

次の方法をお試しください

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


MySQL エラー 1040

エラー メッセージ MySQL Error 1040: Too many connections が表示されます。

次のような問題が考えられます

max_connections フラグの値が大きすぎると、このエラーが発生する原因になる可能性があります。

次の方法をお試しください

カスタマー サポートに連絡して、フラグの削除をリクエストしてから hard drain を送信します。これにより、フラグや設定を使用せずに、新しい構成を使用して別のホストでインスタンスが再起動します。


ネットワークの関連付けに失敗した

エラー メッセージ Network association failed due to the following error: set Service Networking service account as servicenetworking.serviceAgent role on consumer project が表示されます。

次のような問題が考えられます

プロジェクトで Service Networking API が有効になっていません。

次の方法をお試しください

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


接続する権限がない

エラー メッセージ Unauthorized to connect が表示されます。

次のような問題が考えられます

承認はさまざまなレベルで行われるため、多くの原因が考えられます。

  • データベース レベルでは、データベース ユーザーが存在していて、パスワードが一致する必要があります。
  • プロジェクト レベルでは、ユーザーに serviceusage.services.use 権限や cloudsql.instances.connect 権限などの適切な IAM 権限がない可能性があります。
  • ネットワーク レベルでは、Cloud SQL インスタンスでパブリック IP を使用している場合、接続のソース IP が承認済みネットワーク内に存在している必要があります。

次の方法をお試しください

  • ユーザーが存在していて、パスワードが一致することを確認します。
  • ユーザー アカウントに Service Usage Consumer ロールを割り当てます。このロールには権限 serviceusage.services.use が含まれています。
  • パブリック IP を使用する場合は、送信元 IP が承認済みネットワークに存在していることを確認します。

このインスタンスに対するオペレーションが無効

instances.restoreBackup に対する API 呼び出しからのエラー メッセージ HTTP Error 400: This operation isn't valid for this instance が表示されます。

次のような問題が考えられます

バックアップ サイズ(XX GB)がバックアップ サイズ(YY GB)より小さいインスタンスには、バックアップから復元できません。

次の方法をお試しください

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


自動バックアップ中のメモリ不足

エラー メッセージ [ERROR] InnoDB: Write to file ./ibtmp1 failed at offset XXXX, YYYY bytes should have been written, only 0 were written. が表示されます。

次のような問題が考えられます

インスタンスで自動バックアップを実行するときにハードリミットに達しました。

次の方法をお試しください

OS とファイル システムでこのサイズのファイルがサポートされていることを確認します。ディスクに空きがあること、ディスク割り当てが不足していないことを確認します。Google Cloud Console から割り当ての増加をリクエストするか、インスタンスを編集して、より大きなディスクサイズにアップグレードできます。


割り当てを超過した

エラー メッセージ RESOURCE_EXHAUSTED: Quota exceeded または GLOBAL_ADDRESSES_QUOTA_EXCEEDED が表示されます。

次のような問題が考えられます

1 分あたりまたは 1 日あたりの割り当ての上限に達しました。Cloud SQL の割り当てと上限を確認します。

次の方法をお試しください

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


残りの接続スロットが予約済み

エラー メッセージ FATAL: remaining connection slots are reserved for non-replication superuser connections が表示されます。

次のような問題が考えられます

最大接続数に達しました。

次の方法をお試しください

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


リクエストに有効な API キーがない

エラー メッセージ HTTP Error 403: PERMISSION_DENIED. The request is missing a valid API key が表示されます。

次のような問題が考えられます

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

次の方法をお試しください

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


システムエラーが発生した

エラー メッセージ [ERROR_RDBMS] system error occurred が表示されます。

次のような問題が考えられます

  1. ユーザーが必要なすべての Cloud Storage 権限を持っていない可能性があります。
  2. データベース テーブルが存在しない可能性があります。

次の方法をお試しください

  1. バケットに対して少なくとも WRITER 権限があり、エクスポート ファイルに対して READER 権限があることを確認してください。Cloud Storage のアクセス制御の構成について詳しくは、アクセス制御リストの作成と管理をご覧ください。
  2. テーブルが存在していることを確認します。テーブルが存在している場合は、ストレージ バケットに対して適切な権限があることを確認します。

表の定義が変更された

エラー メッセージ Table definition has changed, please retry transaction when dumping table が表示されます。

次のような問題が考えられます

エクスポート処理中にテーブルに対して変更が発生しました。

次の方法をお試しください

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

  • ALTER TABLE
  • CREATE TABLE
  • DROP TABLE
  • RENAME TABLE
  • TRUNCATE TABLE
これらのステートメントのいずれかをダンプ オペレーションから削除します。


一時ファイルサイズが temp_file_limit を超えた

エラー メッセージ Temporary file size exceeds temp_file_limit が表示されます。

次のような問題が考えられます

データベースの使用量に対して temp_file_limit フラグの値が小さすぎます。

次の方法をお試しください

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