エラーコードとトラブルシューティング
このドキュメントでは、TiDBの使用中に発生する問題について説明し、解決策を提供します。
エラーコード
TiDBはMySQLのエラーコードと互換性があり、ほとんどの場合、MySQLと同じエラーコードを返します。 MySQLのエラーコードのリストについては、 MySQL5.7エラーメッセージリファレンスを参照してください。さらに、TiDBには次の固有のエラーコードがあります。
ノート:
一部のエラーコードは内部エラーを表します。通常、TiDBはエラーをユーザーに返すのではなく処理するため、一部のエラーコードはここにリストされていません。
ここにリストされていないエラーコードが発生した場合は、 PingCAPに連絡するをサポートしてください。
エラー番号:8001
リクエストで使用されたメモリが、TiDBメモリ使用量のしきい値制限を超えています。
mem-quota-query
を構成して、単一のSQLステートメントのメモリ制限を増やします。エラー番号:8002
一貫性を保証するために、コミットの競合が発生した場合、
SELECT FOR UPDATE
ステートメントのトランザクションを再試行することはできません。 TiDBはトランザクションをロールバックし、このエラーを返します。アプリケーションは、トランザクション全体を安全に再試行できます。
エラー番号:8003
ADMIN CHECK TABLE
コマンドの実行時に行のデータがインデックスと一致しない場合、TiDBはこのエラーを返します。このエラーは、テーブルのデータ破損を確認するときによく見られます。あなたはサポートのためにPingCAPに連絡するすることができます。
エラー番号:8004
1つのトランザクションが大きすぎます。
原因と解決策については、 エラーメッセージ
transaction too large
ますを参照してください。エラー番号:8005
TiDBのトランザクションで、書き込みの競合が発生します。
原因と解決策については、 トラブルシューティングセクションを参照してください。
エラー番号:8018
プラグインをリロードするときに、プラグインが以前にロードされていない場合、このエラーが返されます。
プラグインの初期ロードを実行できます。
エラー番号:8019
再ロードされるプラグインのバージョンは、以前のバージョンとは異なります。したがって、プラグインをリロードすることはできず、このエラーが返されます。
プラグインのバージョンが前のものと同じであることを確認することで、プラグインをリロードできます。
エラー番号:8020
テーブルがロックされているときにテーブルに対して書き込み操作を実行すると、このエラーが返されます。
テーブルのロックを解除して、書き込み操作を再試行してください。
エラー番号:8021
TiKVから読み取るキーが存在しない場合、このエラーが返されます。このエラーは内部で使用され、外部の結果は空の読み取りになります。
エラー番号:8022
トランザクションのコミットは失敗し、ロールバックされました。
アプリケーションは、トランザクション全体を安全に再試行できます。
エラー番号:8023
トランザクションキャッシュの書き込み時に空の値を設定すると、このエラーが返されます。このエラーは内部で使用および処理され、アプリケーションには返されません。
エラー番号:8024
無効なトランザクション。 TiDBが、実行中のトランザクションのトランザクションID(Start Timestamp)が取得されていないことを検出した場合、つまりこのトランザクションが無効である場合、このエラーが返されます。
通常、このエラーは発生しません。このエラーが発生した場合は、 PingCAPに連絡するをサポートしてください。
エラー番号:8025
書き込まれている単一のKey-Valueペアが大きすぎます。 TiDBでサポートされている最大の単一のKey-Valueペアは、デフォルトで6MBです。
ペアがこの制限を超える場合は、制限を緩和するために
txn-entry-size-limit
構成値を適切に調整する必要があります。エラー番号:8026
使用しているインターフェース機能は実装されていません。このエラーは内部でのみ使用され、アプリケーションには返されません。
エラー番号:8027
テーブルスキーマのバージョンが古くなっています。 TiDBは、スキーマの変更をオンラインで適用します。 TiDBサーバーのテーブルスキーマバージョンがシステム全体のバージョンよりも古い場合、SQLステートメントを実行するとこのエラーが返されます。
このエラーが発生した場合は、TiDBサーバーとPDリーダー間のネットワークを確認してください。
エラー番号:8028
TiDBは、MySQLではメタデータロックと呼ばれ、他のデータベースではインテンションロックと呼ばれる可能性のあるテーブルロックをサポートしていません。
トランザクションが実行されると、トランザクションはテーブルスキーマの変更を認識できません。したがって、トランザクションをコミットするときに、TiDBはトランザクションに関連するテーブルスキーマをチェックします。実行中に関連するテーブルスキーマが変更された場合、トランザクションコミットは失敗し、このエラーが返されます。
アプリケーションは、トランザクション全体を安全に再試行できます。
エラー番号:8029
このエラーは、データベース内の数値変換でエラーが発生した場合に発生します。このエラーは内部でのみ使用され、外部アプリケーションの特定のタイプのエラーに変換されます。
エラー番号:8030
符号なし正の整数が符号付き整数に変換された後、最大値を超えて負の整数として表示されます。このエラーは主にアラートメッセージで発生します。
エラー番号:8031
符号なし整数に変換される場合、負の整数は正の整数に変換されます。このエラーは主にアラートメッセージで発生します。
エラー番号:8032
無効な
year
形式が使用されています。year
は、1、2、または4桁のみを受け入れます。エラー番号:8033
無効な
year
の値が使用されています。year
の有効な範囲は(1901、2155)です。エラー番号:8037
week
関数で無効なmode
形式が使用されています。mode
は[0、7]内の1桁である必要があります。エラー番号:8038
フィールドはデフォルト値を取得できません。このエラーは通常、内部で使用され、外部アプリケーションの特定のタイプのエラーに変換されます。
エラー番号:8040
サポートされていない操作が実行されます。たとえば、ビューまたはシーケンスに対してテーブルロック操作を実行します。
エラー番号:8047
システム変数の値はサポートされていません。このエラーは通常、ユーザーがデータベースでサポートされていない変数値を設定したときにアラーム情報で発生します。
エラー番号:8048
サポートされていないデータベース分離レベルが設定されています。
サードパーティのツールまたはフレームワークを使用しているためにコードを変更できない場合は、
tidb_skip_isolation_level_check
を使用してこのチェックをバイパスすることを検討してください。set @@tidb_skip_isolation_level_check = 1;エラー番号:8050
サポートされていない特権タイプが設定されています。
解決策についてはTiDB操作に必要な権限を参照してください。
エラー番号:8051
TiDBがクライアントから送信されたExec引数リストを解析するときに、不明なデータ型が検出されました。
このエラーが発生した場合は、クライアントを確認してください。クライアントが正常な場合、サポートの場合はPingCAPに連絡する 。
エラー番号:8052
クライアントからのデータパケットのシリアル番号が正しくありません。
このエラーが発生した場合は、クライアントを確認してください。クライアントが正常な場合、サポートの場合はPingCAPに連絡する 。
エラー番号:8055
現在のスナップショットは古すぎます。データはガベージコレクションされた可能性があります。この問題を回避するには、値を
tidb_gc_life_time
に増やすことができます。 TiDBは、長時間実行されるトランザクション用にデータを自動的に予約します。通常、このエラーは発生しません。ガベージコレクションの概要とガベージコレクションの構成を参照してください。
エラー番号:8059
自動ランダムIDが使い果たされ、割り当てることができません。現在、このようなエラーから回復する方法はありません。自動ランダム機能を使用して割り当ての最大数を取得する場合は、bigintを使用することをお勧めします。また、自動ランダム列に手動で値を割り当てることは避けてください。
参考のために自動ランダムを参照してください。
エラー番号:8060
自動インクリメントオフセットが無効です。
auto_increment_increment
とauto_increment_offset
の値を確認してください。エラー番号:8061
サポートされていないSQLヒント。
SQLヒントを確認および変更するには、 オプティマイザーのヒントを参照してください。
エラー番号:8062
SQLヒントで無効なトークンが使用されています。 SQLヒントの予約語と競合します。
SQLヒントを確認および変更するには、 オプティマイザーのヒントを参照してください。
エラー番号:8063
SQLヒントで設定されている制限付きメモリ使用量がシステムの上限を超えています。 SQLヒントの設定は無視されます。
SQLヒントを確認および変更するには、 オプティマイザーのヒントを参照してください。
エラー番号:8064
SQLヒントの解析に失敗します。
SQLヒントを確認および変更するには、 オプティマイザーのヒントを参照してください。
エラー番号:8065
SQLヒントで無効な整数が使用されています。
SQLヒントを確認および変更するには、 オプティマイザーのヒントを参照してください。
エラー番号:8066
JSON_OBJECTAGG
関数の2番目のパラメーターが無効です。エラー番号:8101
プラグインIDの形式が正しくありません。
正しい形式は
[name]-[version]
であり、name
とversion
では-
は許可されていません。エラー番号:8102
プラグイン定義情報を読み取ることができません。
プラグインに関連する構成を確認してください。
エラー番号:8103
プラグイン名が正しくありません。
プラグインの構成を確認してください。
エラー番号:8104
プラグインのバージョンが一致しません。
プラグインの構成を確認してください。
エラー番号:8105
プラグインが繰り返しロードされます。
エラー番号:8106
プラグインは、名前がプラグイン名で始まらないシステム変数を定義します。
プラグインの開発者に連絡して変更してください。
エラー番号:8107
ロードされたプラグインがバージョンを指定していないか、指定されたバージョンが低すぎます。
プラグインの構成を確認してください。
エラー番号:8108
サポートされていない実行プランタイプ。このエラーは内部エラーです。
このエラーが発生した場合は、 PingCAPに連絡するをサポートしてください。
エラー番号:8109
インデックスの分析時に、指定されたインデックスが見つかりません。
エラー番号:8110
デカルト積演算は実行できません。
構成の
cross-join
をtrue
に設定します。エラー番号:8111
EXECUTE
ステートメントを実行すると、対応するPrepare
ステートメントが見つかりません。エラー番号:8112
EXECUTE
ステートメントのパラメーターの数がPrepare
ステートメントと一致していません。エラー番号:8113
EXECUTE
ステートメントに関連するテーブルスキーマは、Prepare
ステートメントの実行後に変更されました。エラー番号:8115
複数行のステートメントを準備することはサポートされていません。
エラー番号:8116
DDLステートメントの準備はサポートされていません。
エラー番号:8120
トランザクションの
start tso
を取得できません。PDサーバーの状態/モニター/ログおよびTiDBサーバーとPDサーバー間のネットワークを確認してください。
エラー番号:8121
特権チェックは失敗します。
データベースの特権構成を確認してください。
エラー番号:8122
指定されたワイルドカードを指定すると、対応するテーブル名が見つかりません。
エラー番号:8123
集計関数を使用したSQLクエリは、
only_full_group_by
モードに違反する非集計列を返します。SQLステートメントを変更するか、
only_full_group_by
モードを無効にします。エラー番号:8129
TiDBは、キー長が65536以上のJSONオブジェクトをまだサポートしていません。
エラー番号:8200
DDL構文はまだサポートされていません。
参考のためにMySQLDDLの互換性を参照してください。
エラー番号:8214
DDL操作は
admin cancel
操作で終了します。エラー番号:8215
ADMIN REPAIR TABLE
は失敗します。このエラーが発生した場合は、 PingCAPに連絡するをサポートしてください。
エラー番号:8216
自動ランダム列の使用法が正しくありません。
変更するには自動ランダムを参照してください。
エラー番号:8223
このエラーは、データがインデックスと一致していないことを検出したときに発生します。
このエラーが発生した場合は、 PingCAPに連絡するをサポートしてください。
エラー番号:8224
DDLジョブが見つかりません。
restore
操作で指定したジョブIDが存在するか確認してください。エラー番号:8225
DDL操作は完了しており、キャンセルできません。
エラー番号:8226
DDL操作はほぼ完了しており、キャンセルできません。
エラー番号:8227
シーケンスを作成するときに、サポートされていないオプションが使用されます。
サポートされているオプションのリストを見つけるには、 シーケンスドキュメントを参照してください。
エラー番号:8228
シーケンスで
setval
を使用すると、サポートされていないタイプが指定されます。関数の例を見つけるには、 シーケンスドキュメントを参照してください。
エラー番号:8229
トランザクションが存続時間を超えています。
現在のトランザクションをコミットまたはロールバックして、新しいトランザクションを開始します。
エラー番号:8230
TiDBは現在、新しく追加された列のデフォルト値としてのシーケンスの使用をサポートしておらず、使用するとこのエラーを報告します。
エラー番号:9001
PD要求がタイムアウトしました。
PDサーバーの状態/モニター/ログおよびTiDBサーバーとPDサーバー間のネットワークを確認してください。
エラー番号:9002
TiKVリクエストがタイムアウトしました。
TiKVサーバーの状態/モニター/ログ、およびTiDBサーバーとTiKVサーバー間のネットワークを確認します。
エラー番号:9003
TiKVサーバーはビジーであり、これは通常、ワークロードが高すぎる場合に発生します。
TiKVサーバーの状態/モニター/ログを確認してください。
エラー番号:9004
このエラーは、データベースに多数のトランザクションの競合が存在する場合に発生します。
アプリケーションのコードを確認してください。
エラー番号:9005
レプリカの数が不足しているなど、特定のRaftグループが利用できません。このエラーは通常、TiKVサーバーがビジーであるか、TiKVノードがダウンしているときに発生します。
TiKVサーバーの状態/モニター/ログを確認してください。
エラー番号:9006
GCライフタイムの間隔が短すぎるため、長いトランザクションで読み取る必要のあるデータがクリアされる可能性があります。
GCライフタイムの間隔を延長します。
エラー番号:9500
1つのトランザクションが大きすぎます。
解決策についてはエラーメッセージ
transaction too large
ますを参照してください。エラー番号:9007
TiKVのトランザクションでは、書き込みの競合が発生します。
原因と解決策については、 トラブルシューティングセクションを参照してください。
エラー番号:9008
同時に送信されるリクエストが多すぎます。数が制限を超えています。
tidb_store_limit
を増やすか、0
に設定して、リクエストのトラフィックの制限を削除します。エラー番号:9010
TiKVはこのいかだログを処理できません。
TiKVサーバーの状態/モニター/ログを確認してください。
エラー番号:9012
TiFlashリクエストがタイムアウトしました。
TiFlashサーバーの状態/モニター/ログおよびTiDBサーバーとTiFlashサーバー間のネットワークを確認してください。
エラー番号:9013
TiFlashサーバーはビジーであり、これは通常、ワークロードが高すぎる場合に発生します。
TiFlashサーバーの状態/モニター/ログを確認してください。
トラブルシューティング
トラブルシューティングおよびFAQのドキュメントを参照してください。