このページでは、Cloud SQL で表示されるエラー メッセージについて説明します。
概要
Cloud SQL のエラー メッセージはさまざまな原因で発生し、さまざまな場所に表示されます。エラー メッセージには、データベース エンジン自体、Cloud SQL サービス、クライアント アプリケーション、Cloud SQL Admin API の呼び出しから返されるものがあります。
このページでは、Cloud SQL でよく発生するエラーの一部をご紹介します。探しているエラーコードやメッセージが見つからない場合は、ここでソースの参照資料を探してください。
表示されているエラー メッセージの参照資料が見つからない場合は、関連する経験のある他のユーザーの投稿を以下の場所で検索することもできます。
- Stack Overflow での Cloud SQL に関する質問
 - Cloud SQL の公開バグトラッカー
 - DBA Stack Exchange
 - Cloud SQL ディスカッション グループ
 - Google Cloud Slack コミュニティ
 - Reddit での Google Cloud
 
オペレーション エラー
A | B | C | D | E | F | G | I | L | M | N | O | P | Q | R | S | T | U | W
| エラー メッセージ | トラブルシューティング | 
|---|---|
| データベース DB_NAME への接続 xxx が中断した。 | アプリケーションの接続が正しく終了していません。 以下の条件を確認してください。 
  | 
    
| アクセスが拒否された(この操作を行うには、SUPER の権限の少なくとも 1 つが必要) | ソース データベースのビュー、関数、またはプロシージャが、Cloud SQL でサポートされていない方法で DEFINER を参照している可能性があります。外部データベースで DEFINER 句を更新します。たとえば、  | 
    
| ユーザー 'XXX'@'XXX'(使用パスワード: XXX)のアクセスが拒否された。 | 次のようないくつかの原因が考えられます。
 次のことをお試しください。 
  | 
    
| 割り振られた IP 範囲がネットワークで見つからない。 | 割り振り範囲を変更または削除した後に VPC ピアリングが更新されませんでした。 プライベート接続を変更する必要があります。次のコマンドを使用します。 gcloud services vpc-peerings update \ --network=VPC_NETWORK \ --ranges=ALLOCATED_RANGES \ --service=servicenetworking.googleapis.com \ --force  | 
    
| ユーザー 'root'@'%' に対するコマンドがテーブルで拒否された。 | ユーザーは、この操作に必要なすべての権限を持っていません。 以下のように入力します。 
  | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| 不正なリクエスト。 | このメッセージにはさまざまな原因があります。最も一般的なのは Illegal Argument です。この場合、リクエストで間違った引数を使用しているか、引数の値が無効です。他の多くの原因については、エラー メッセージに有用なヒントが含まれている場合があります。
  | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| CreateConnection で割り振り範囲を変更することはできません。UpdateConnection を使用してください。 | 割り振り範囲を変更または削除した後に VPC ピアリングが更新されませんでした。 プライベート接続を変更する必要があります。次のコマンドを使用します。 gcloud services vpc-peerings update \ --network=VPC_NETWORK \ --ranges=ALLOCATED_RANGES \ --service=servicenetworking.googleapis.com \ --force  | 
    
| Constraints/sql.restrictAuthorizedNetworks。 | クローン作成のオペレーションが、Authorized Networks 構成によってブロックされている。Authorized Networks は、 Google Cloud コンソールの [接続] セクションでパブリック IP アドレス用に構成されており、セキュリティに関する考慮事項により、クローン作成が許可されていません。
      可能であれば、Cloud SQL インスタンスからすべての   | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| ディスクに空きがない。 | レプリカの作成中にプライマリ インスタンスのディスクの空きがなくなる可能性があります。 プライマリ インスタンスを編集して、より大きなディスクサイズにアップグレードします。  | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| サブネットワークを作成できない。 | IP 範囲にはこれ以上使用可能なアドレスはありません。 割り振られた IP 範囲に空きブロックが見つかりませんでした。このサービス プロバイダに新しい範囲を割り振ってください。 割り振り済みの 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 から接続することはできません。  | 
    
テーブルをダンプする際に max_allowed_packet バイトを超えるパケットを取得した。 | 
      パケットが、設定された許容量を超えました。 
 マネージド インポート移行の   | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| InnoDB: ./ibtmp1 ファイルへの書き込みがオフセット XXXX で失敗した。YYYY バイトが書き込まれている必要があるが、0 しか書き込まれていない。 | インスタンスで自動バックアップを実行するときにハードリミットに達しました。 OS とファイル システムでこのサイズのファイルがサポートされていることを確認します。ディスクに空きがあること、またはディスク割り当てが不足していないことを確認します。Google Cloud コンソールから割り当ての増加をリクエストするか、インスタンスを編集して、より大きなディスクサイズにアップグレードできます。  | 
    
| 内部エラー。 | プロジェクトに、この機能に必要なサービス ネットワーキングのサービス アカウントがない可能性があります。 サービスの権限を修復するには、  | 
    
| 無効なリクエスト: インスタンスのサービス ネットワーキング構成が不正。 | プロジェクトで Service Networking API が有効になっていません。プロジェクトで   | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| メタデータ テーブルがロックされている。 | 別のクエリ、プロセス、またはトランザクションがクエリをブロックし、テーブルをロックしています。 テーブルをロックしたプロセスを見つけて、そのプロセスを停止します。 
  | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| ネットワークの関連付けに失敗した。 | プロジェクトで Service Networking API が有効になっていません。プロジェクトで   | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| 別のオペレーションがすでに進行中だったので、このオペレーションは失敗しました。 | Cloud SQL のほとんどのオペレーションが同時に実行されています。一度に実行できる実行は 1 つだけです。 前のオペレーションが終了するのを待ってから、別のオペレーションを開始します。  | 
    
| このインスタンスに対するオペレーションが無効。 | このエラーは、instances.restoreBackup に対する API 呼び出しから返されます。これは、バックアップ サイズ(YY GB)よりストレージ サイズ(XX GB)が小さいインスタンスには、バックアップから復元できないことを意味します。ターゲット インスタンスを編集して、ストレージ サイズを増やします。  | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| 容量を超えています。 | 1 分あたりまたは 1 日あたりの割り当ての上限に達しました。Cloud SQL の割り当てと上限を確認します。 Google Cloud コンソールから割り当ての増加をリクエストします。  | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| 残りの接続スロットが予約済み。 | 最大接続数に達しました。 
  | 
    
| リクエストに有効な API キーがない。 | 有効なサービス アカウント キーの JSON ファイルがないか、想定されている場所に保存されていない可能性があります。 
  | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| 指定された鍵が長すぎる(キーの最大長は 767 バイト)。 | 外部プライマリ インスタンスに innodb_large_prefix 変数が設定されている可能性があります。レプリカを作成するときに、  | 
    
| SSL エラー: 無効なパディング。 | サーバー証明書エラー。 新しいサーバー証明書を作成して、ローテーションします。  | 
    
| システムエラーが発生した。 | 
        
 次のことをお試しください。 
  | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| テーブルの定義が変更された。 | エクスポート処理中にテーブルに対して変更が発生しました。 エクスポート オペレーション中に次のステートメントを使用すると、ダンプ トランザクションが失敗する可能性があります。 
 これらのステートメントのいずれかをダンプ オペレーションから削除します。  | 
    
| テーブル db.table が存在しない | MySQL の再起動後に 1 つ以上の InnoDB テーブルが表示されなくなり、MySQL エラーログに次の警告が同時に表示された場合は、外部キーの列と参照されるキーの列が同期されていません。[Warning] InnoDB: Load table db.table failed, the table has missing foreign key indexes. Turn off 'foreign_key_checks' and try again. [Warning] InnoDB: Cannot open table db/table from the internal data dictionary of InnoDB though the .frm file for the table exists. See InnoDB troubleshooting for more information. データベースを再起動した後、MySQL が最初にアクセスするときに、InnoDB 辞書キャッシュにテーブルを読み込む必要があります。不一致が検出されると、そのテーブルへのアクセスがブロックされます。 mysql> select * from db.table; ERROR 1146 (42S02): Table db.table doesn't exist MySQL セッションで  さらなる問題を回避するため、外部キーの不一致を修正する必要があります。 
  | 
    
| (タイムアウト)エクスポート中。 | CSV 形式と SQL 形式ではエクスポート方法が異なります。SQL 形式にはデータベース全体が含まれ、完了までに時間がかかる可能性があります。 CSV 形式を使用して複数の小規模なエクスポート ジョブを実行し、各オペレーションのサイズと長さを減らします。  | 
    
| 接続が多すぎる。 | max_connections フラグの値が大きすぎると、このエラーが発生する原因になる可能性があります。これは、シーケンスから外れたフラグを有効にした場合にも発生します。
  | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| 接続失敗。 | 認証はさまざまなレベルで行われるため、多くの原因が考えられます。
 次のことをお試しください。 
  | 
    
information_schema に不明なテーブル COLUMN_STATISTICS がある。 | 
      これは、MySQL 8.0 の mysqldump バイナリを使用して MySQL 5.7 データベースからデータをダンプし、それを MySQL 8.0 データベースにインポートする場合に発生します。MySQL 5.7 データベースからデータをダンプし、MySQL 8.0 データベースにインポートする場合は、必ず MySQL 5.7 の   | 
    
| エラー メッセージ | トラブルシューティング | 
|---|---|
| x509: いずれの名前に対しても証明書が無効である。 | 既知の問題: 現時点では、Cloud SQL Proxy Dialer は Go 1.15 と互換性がありません。 修正されるまで、回避策が記載されている GitHub のディスカッションをご覧ください。  | 
    
不明なエラー
次の表に、Unknown Error が発生する可能性がある既知のケースとその解決方法(可能な場合)を示します。このリストはすべてを網羅しているわけではありません。以下の表で該当するケースが見つからない場合は、Cloud SQL の公開バグトラッカーで確認してください。問題が見つからない場合は、レポートを送信するか、他のサポート オプションをご確認ください。
| オペレーション | 次のような問題が考えられます | 次の方法をお試しください | 
|---|---|---|
| ユーザーを追加 | データベースにすでに存在するユーザーを追加しようとすると、このエラーが発生することがあります。 | ユーザーがデータベースにまだ存在していないことを確認します。 | 
| バックアップ | 自動バックアップ中または手動バックアップ中にこのエラーが表示される場合は、インスタンスのディスクに空きがない可能性があります。 | 一時ファイルのサイズが大きすぎる場合は、インスタンスを再起動してそのファイルを削除し、ディスクの空き容量を増やしてください。それ以外の場合は、インスタンスをより大きなディスクサイズにアップグレードする必要があります。 | 
| クローン | このエラーは、選択したゾーンにリソース不足がある場合に発生することがあります。 | リージョン内の別のゾーンを試すか、しばらくしてからもう一度お試しください。 | 
| インスタンスの作成 | 
         
  | 
       
         
  | 
     
| レプリカの作成 | ログファイルに、より具体的なエラーが示される可能性があります。 | Cloud Logging のログを調べて、実際のエラーを確認します。 エラーが  エラーが   | 
     
| エクスポート | データベースを Cloud Storage バケットにエクスポートしようとしたときにこのエラーが表示された場合は、帯域幅の問題が原因で転送が失敗している可能性があります。 | Cloud SQL インスタンスが Cloud Storage バケットとは異なるリージョンに存在している可能性があります。ある大陸から別の大陸へのデータの読み取りと書き込みではネットワークの使用量が多く、このような断続的な問題を引き起こす可能性があります。 | 
| フェイルオーバー(レガシー) | レガシー フェイルオーバー構成を使用している場合、フェイルオーバー レプリカマシンのサイズが小さく、フェイルオーバーを処理できないと、この問題が発生することがあります。 | 最適な解決策は、現在の高可用性構成に移行することです。それ以外の場合、フェイルオーバー レプリカをより大きなマシンに更新する必要があります。 | 
| フェイルオーバー(自動) | 自動フェイルオーバー オペレーションでは、プライマリ インスタンスが応答可能な状態であることをサービスが検出すると、このエラー メッセージが生成されます。 | この場合、何もする必要はありません。フェイルオーバーは不要なため、発生することはありません。 | 
| インポート | インポート ファイルに、スーパーユーザー ロールを必要とするステートメントが含まれている可能性があります。 | ファイルを編集して、スーパーユーザー ロールを必要とするステートメントを削除します。 | 
Cloud SQL は一部のサードパーティ バイナリ(mysqld など)を使用するため、不明なエラー メッセージが生成されることがあります。このようなエラーはサードパーティのバイナリの内部エラーで、Cloud SQL の範囲外です。ただし、Cloud SQL のログファイルで具体的なエラーが確認できる場合があります。
また、不明なエラーコードの場合もあります。その場合、完全なメッセージは Unknown Error Code になります。