付録 B エラー、エラーコード、および一般的な問題

目次

B.1 エラー情報のソース
B.2 エラー値のタイプ
B.3 サーバーのエラーコードおよびメッセージ
B.4 クライアントのエラーコードおよびメッセージ
B.5 問題および一般的なエラー
B.5.1 問題の原因を判別する方法
B.5.2 MySQL プログラム使用時の一般的なエラー
B.5.3 インストール関連の問題
B.5.4 管理関連の問題
B.5.5 クエリー関連の問題
B.5.6 オプティマイザ関連の問題
B.5.7 テーブル定義関連の問題
B.5.8 MySQL の既知の問題

この付録では、一般的な問題、発生する可能性があるエラー、および考えられる解決策を一覧表示することに加えて、ホスト言語から MySQL を呼び出したときに発生する可能性があるエラーも一覧表示しています。最初のセクションは問題と解決策について説明しています。エラーに関する詳細な情報があります。1 つのリストには、サーバーのエラーメッセージが示されています。もう 1 つのリストには、クライアントプログラムのメッセージが示されています。

B.1 エラー情報のソース

MySQL にはエラー情報のソースがいくつかあります。

  • 各 SQL ステートメントを実行すると、セクションB.2「エラー値のタイプ」で説明されているように、エラーコード、SQLSTATE 値、およびエラーメッセージが返されます。これらのエラーはサーバー側から返されます (セクションB.3「サーバーのエラーコードおよびメッセージ」を参照してください)。

  • クライアント側でエラーが発生することがあり、通常、サーバーと通信するプログラムが関係しています (セクションB.4「クライアントのエラーコードおよびメッセージ」を参照してください)。

  • SQL ステートメントの警告およびエラーの情報は、SHOW WARNINGS ステートメントおよび SHOW ERRORS ステートメントを使用して表示できます。warning_count システム変数は、エラー、警告、および注意の数を示します。error_count システム変数はエラー数を示します。この値には警告および注意は含まれていません。

  • GET DIAGNOSTICS ステートメントは、診断領域の診断情報を調査するために使用できます。セクション13.6.7.3「GET DIAGNOSTICS 構文」を参照してください。

  • SHOW SLAVE STATUS ステートメントの出力には、スレーブ側で発生したレプリケーションエラーに関する情報が含まれています。

  • InnoDB テーブルに対するCREATE TABLE ステートメントが失敗した場合、SHOW ENGINE INNODB STATUS ステートメントの出力には、最後の外部キーエラーに関する情報が含まれています。

  • perror プログラムは、コマンド行からエラー番号に関する情報を表示します。セクション4.8.1「perror — エラーコードの説明」を参照してください。

サーバーエラーとクライアントエラーについては、この付録の以降のセクションで説明します。InnoDB に関連するエラーについては、セクション14.19.4「InnoDB のエラー処理」を参照してください。

B.2 エラー値のタイプ

MySQL でエラーが発生すると、サーバーは 2 種類のエラー値を返します。

  • MySQL 固有のエラーコード。この値は数字です。これはほかのデータベースシステムには移植できません。

  • SQLSTATE 値。値は 5 文字の文字列です (たとえば、'42S02')。この値は、ANSI SQL および ODBC から採用されており、より標準化されています。

エラーの説明を示すメッセージ文字列も利用できます。

エラーが発生した場合は、C API 関数を使用して、MySQL のエラーコード、SQLSTATE 値、およびメッセージ文字列を利用できます。

  • MySQL エラーコード: Call mysql_errno()

  • SQLSTATE 値: Call mysql_sqlstate()

  • エラーメッセージ: Call mysql_error()

準備済みステートメントの場合、対応するエラー関数は mysql_stmt_errno()mysql_stmt_sqlstate()、および mysql_stmt_error() です。すべてのエラー関数については、セクション23.7「MySQL C API」で説明しています。

最後のステートメントのエラー、警告、および注意の数は、mysql_warning_count() を呼び出すことによって取得できます。セクション23.7.7.73「mysql_warning_count()」を参照してください。

SQLSTATE 値の最初の 2 文字はエラークラスを示しています。

  • クラス = '00' は成功を示しています。

  • クラス = '01' は警告を示しています。

  • クラス = '02'Not Found を示しています。これは、カーソルのコンテキストに関係しており、カーソルがデータセットの最後に達したときの動作を制御するために使用します。この状況は、行が取得されない SELECT ... INTO var_list ステートメントでも発生します。

  • クラス > '02' は例外を示しています。

B.3 サーバーのエラーコードおよびメッセージ

MySQL プログラムは、サーバーがエラーを返したときに、いくつかのタイプのエラー情報にアクセスできます。たとえば、mysql クライアントプログラムは、次の形式を使用してエラーを表示します。

shell> SELECT * FROM no_such_table;ERROR 1146 (42S02): Table 'test.no_such_table' doesn't exist

表示されるメッセージには、3 つのタイプの情報が含まれています。

  • 数字のエラーコード (1146)。この数字は MySQL 固有であり、ほかのデータベースシステムに移植できません。

  • 5 文字の SQLSTATE 値 ('42S02')。この値は、ANSI SQL および ODBC から採用されており、より標準化されています。すべての MySQL エラー番号に、対応する SQLSTATE 値があるわけではありません。それらの場合は、'HY000' (一般エラー) が使用されます。

  • エラーの説明を示すメッセージ文字列。

エラーを確認する場合は、エラーメッセージではなくエラーコードを使用してください。エラーメッセージが頻繁に変更されることはありませんが、変更される可能性はあります。また、データベース管理者が言語設定を変更した場合は、エラーメッセージの言語に影響します。

エラーコードは、特定の MySQL シリーズの GA リリースにおいて固定されています。シリーズが GA ステータスとなる前は、新しいコードはまだ開発中であることがあり、変更されることがあります。

サーバーのエラー情報では、次のソースファイルが使用されています。エラー情報が定義される仕組みについては、「MySQL Internals Manual」を参照してください。

  • エラーメッセージ情報は share/errmsg.txt ファイルに一覧表示されています。%d および %s は数字および文字列をそれぞれ表しており、表示されるときにメッセージ値に置換されます。

  • share/errmsg.txt に一覧表示されているエラー値は、MySQL ソースファイル (include/mysqld_error.h および include/mysqld_ername.h) の定義を生成するために使用されます。

  • share/errmsg.txt に一覧表示されている SQLSTATE 値は、MySQL ソースファイル (include/sql_state.h) の定義を生成するために使用されます。

更新は頻繁に行われるため、ここに一覧表示されていない追加のエラー情報がこれらのファイルに含まれている可能性があります。

  • エラー: 1000 SQLSTATE: HY000 (ER_HASHCHK)

    メッセージ: hashchk

    使用されません。

  • エラー: 1001 SQLSTATE: HY000 (ER_NISAMCHK)

    メッセージ: isamchk

    使用されません。

  • エラー: 1002 SQLSTATE: HY000 (ER_NO)

    メッセージ: NO

    その他のメッセージの構築に使われます。

  • エラー: 1003 SQLSTATE: HY000 (ER_YES)

    メッセージ: YES

    その他のメッセージの構築に使われます。

    拡張された EXPLAIN 形式は注記メッセージを生成します。ER_YES は、後続の SHOW WARNINGS 出力にあるメッセージの Code カラムに使用されます。

  • エラー: 1004 SQLSTATE: HY000 (ER_CANT_CREATE_FILE)

    メッセージ: ファイル '%s' を作成できません (エラー番号: %d - %s)

    サーバーがソーステーブルの .frm ファイルをコピー先テーブルの .frm ファイルにコピーしようとして、CREATE TABLE dst LIKE src ステートメントを実行したときに、新しい場所への .frm ファイルのコピーに失敗した場合に発生します。

    考えられる原因: ソース .frm ファイルのアクセス権の問題。コピー先 .frm ファイルがすでに存在するが、書き込みできない。

  • エラー: 1005 SQLSTATE: HY000 (ER_CANT_CREATE_TABLE)

    メッセージ: 表 '%s' を作成できません (エラー番号: %d)

  • エラー: 1006 SQLSTATE: HY000 (ER_CANT_CREATE_DB)

    メッセージ: データベース '%s' を作成できません (エラー番号: %d)

  • エラー: 1007 SQLSTATE: HY000 (ER_DB_CREATE_EXISTS)

    メッセージ: データベース '%s' を作成できません。データベースはすでに存在します

    データベースがすでに存在するため、データベースの作成が失敗しました。

    既存のデータベースを置き換える場合は、最初にデータベースをドロップします。既存のデータベースを維持して、ステートメントでエラーが発生しないようにする場合は、CREATE DATABASE ステートメントに IF NOT EXISTS 句を追加します。

  • エラー: 1008 SQLSTATE: HY000 (ER_DB_DROP_EXISTS)

    メッセージ: データベース '%s' を削除できません。データベースは存在しません

  • エラー: 1009 SQLSTATE: HY000 (ER_DB_DROP_DELETE)

    メッセージ: データベース削除エラー ('%s' を削除できません。エラー番号: %d)

  • エラー: 1010 SQLSTATE: HY000 (ER_DB_DROP_RMDIR)

    メッセージ: データベース削除エラー (ディレクトリ '%s' を削除できません。エラー番号: %d)

  • エラー: 1011 SQLSTATE: HY000 (ER_CANT_DELETE_FILE)

    メッセージ: ファイル '%s' の削除エラー (エラー番号: %d - %s)

  • エラー: 1012 SQLSTATE: HY000 (ER_CANT_FIND_SYSTEM_REC)

    メッセージ: システムテーブルのレコードを読み取れません

    InnoDB を使用できないときに、InnoDBINFORMATION_SCHEMA テーブルにアクセスしようとすると、InnoDB によって返されます。

  • エラー: 1013 SQLSTATE: HY000 (ER_CANT_GET_STAT)

    メッセージ: '%s' のステータスを取得できません (エラー番号: %d - %s)

  • エラー: 1014 SQLSTATE: HY000 (ER_CANT_GET_WD)

    メッセージ: 作業ディレクトリを取得できません (エラー番号: %d - %s)

  • エラー: 1015 SQLSTATE: HY000 (ER_CANT_LOCK)

    メッセージ: ファイルをロックできません (エラー番号: %d - %s)

  • エラー: 1016 SQLSTATE: HY000 (ER_CANT_OPEN_FILE)

    メッセージ: ファイル '%s' をオープンできません (エラー番号: %d - %s)

  • エラー: 1017 SQLSTATE: HY000 (ER_FILE_NOT_FOUND)

    メッセージ: ファイル '%s' が見つかりません (エラー番号: %d - %s)

  • エラー: 1018 SQLSTATE: HY000 (ER_CANT_READ_DIR)

    メッセージ: ディレクトリ '%s' を読み取れません (エラー番号: %d - %s)

  • エラー: 1019 SQLSTATE: HY000 (ER_CANT_SET_WD)

    メッセージ: ディレクトリ '%s' に移動できません (エラー番号: %d - %s)

  • エラー: 1020 SQLSTATE: HY000 (ER_CHECKREAD)

    メッセージ: 表 '%s' の最後の読み取り時点から、レコードが変化しました

  • エラー: 1021 SQLSTATE: HY000 (ER_DISK_FULL)

    メッセージ: ディスク領域不足です (%s)。領域が解放されるのを待機しています... (エラー番号: %d - %s)

  • エラー: 1022 SQLSTATE: 23000 (ER_DUP_KEY)

    メッセージ: 書き込めません。表 '%s' に重複するキーがあります

  • エラー: 1023 SQLSTATE: HY000 (ER_ERROR_ON_CLOSE)

    メッセージ: '%s' のクローズ時エラー (エラー番号: %d - %s)

  • エラー: 1024 SQLSTATE: HY000 (ER_ERROR_ON_READ)

    メッセージ: ファイル '%s' の読み取りエラー (エラー番号: %d - %s)

  • エラー: 1025 SQLSTATE: HY000 (ER_ERROR_ON_RENAME)

    メッセージ: '%s' の名前を '%s' に変更できません (エラー番号: %d - %s)

  • エラー: 1026 SQLSTATE: HY000 (ER_ERROR_ON_WRITE)

    メッセージ: ファイル '%s' の書き込みエラー (エラー番号: %d - %s)

  • エラー: 1027 SQLSTATE: HY000 (ER_FILE_USED)

    メッセージ: '%s' はロックされています

  • エラー: 1028 SQLSTATE: HY000 (ER_FILSORT_ABORT)

    メッセージ: ソート処理を中断しました

  • エラー: 1029 SQLSTATE: HY000 (ER_FORM_NOT_FOUND)

    メッセージ: ビュー '%s' は '%s' に存在しません

  • エラー: 1030 SQLSTATE: HY000 (ER_GET_ERRNO)

    メッセージ: ストレージエンジンがエラー %d を返しました

    OS エラーの意味を確認するには、%d 値をチェックします。たとえば、28 はディスクに空き領域がないことを示します。

  • エラー: 1031 SQLSTATE: HY000 (ER_ILLEGAL_HA)

    メッセージ: 表 '%s' のストレージエンジンでは提供されないオプションです

  • エラー: 1032 SQLSTATE: HY000 (ER_KEY_NOT_FOUND)

    メッセージ: '%s' にレコードが見つかりません

  • エラー: 1033 SQLSTATE: HY000 (ER_NOT_FORM_FILE)

    メッセージ: ファイル '%s' 内の情報が不正です

  • エラー: 1034 SQLSTATE: HY000 (ER_NOT_KEYFILE)

    メッセージ: 表 '%s' のキーファイル (key file) の内容が不正です。修復を試行してください

  • エラー: 1035 SQLSTATE: HY000 (ER_OLD_KEYFILE)

    メッセージ: 表 '%s' のキーファイル (key file) は古い形式です。修復してください。

  • エラー: 1036 SQLSTATE: HY000 (ER_OPEN_AS_READONLY)

    メッセージ: 表 '%s' は読み取り専用です

  • エラー: 1037 SQLSTATE: HY001 (ER_OUTOFMEMORY)

    メッセージ: メモリーが不足しています。サーバーを再起動してみてください (%d バイトの割り当てに失敗)

  • エラー: 1038 SQLSTATE: HY001 (ER_OUT_OF_SORTMEMORY)

    メッセージ: ソートメモリーが不足しています。ソートバッファーサイズ (sort buffer size) の増加を検討してください

  • エラー: 1039 SQLSTATE: HY000 (ER_UNEXPECTED_EOF)

    メッセージ: ファイル '%s' を読み取り中に予期せずファイルの終端に達しました (エラー番号: %d - %s)

  • エラー: 1040 SQLSTATE: 08004 (ER_CON_COUNT_ERROR)

    メッセージ: 接続が多すぎます

  • エラー: 1041 SQLSTATE: HY000 (ER_OUT_OF_RESOURCES)

    メッセージ: メモリーが不足しています。mysqld やその他のプロセスがメモリーを使い切っていないか確認してください。メモリーを使い切っていない場合、'ulimit' の設定などで mysqld のメモリー使用最大量を多くするか、スワップ領域を増やす必要があるかもしれません

  • エラー: 1042 SQLSTATE: 08S01 (ER_BAD_HOST_ERROR)

    メッセージ: IP アドレスからホスト名を解決できません

  • エラー: 1043 SQLSTATE: 08S01 (ER_HANDSHAKE_ERROR)

    メッセージ: ハンドシェイクエラー

  • エラー: 1044 SQLSTATE: 42000 (ER_DBACCESS_DENIED_ERROR)

    メッセージ: ユーザー '%s'@'%s によるデータベース '%s' へのアクセスは拒否されました

  • エラー: 1045 SQLSTATE: 28000 (ER_ACCESS_DENIED_ERROR)

    メッセージ: ユーザー '%s'@'%s' のアクセスは拒否されました (使用パスワード: %s)

  • エラー: 1046 SQLSTATE: 3D000 (ER_NO_DB_ERROR)

    メッセージ: データベースが選択されていません

  • エラー: 1047 SQLSTATE: 08S01 (ER_UNKNOWN_COM_ERROR)

    メッセージ: 不明なコマンドです

  • エラー: 1048 SQLSTATE: 23000 (ER_BAD_NULL_ERROR)

    メッセージ: カラム '%s' は null にできません

  • エラー: 1049 SQLSTATE: 42000 (ER_BAD_DB_ERROR)

    メッセージ: '%s' は不明なデータベースです

  • エラー: 1050 SQLSTATE: 42S01 (ER_TABLE_EXISTS_ERROR)

    メッセージ: 表 '%s' はすでに存在します

  • エラー: 1051 SQLSTATE: 42S02 (ER_BAD_TABLE_ERROR)

    メッセージ: '%s' は不明な表です

  • エラー: 1052 SQLSTATE: 23000 (ER_NON_UNIQ_ERROR)

    メッセージ: カラム '%s' は %s 内であいまいです

    %s = column name
    %s = location of column (for example, "field list")

    考えられる原因: クエリーに記述されたカラム (選択リスト内、ON 句内など) が適切に修飾されていません。

    例:

    mysql> SELECT i FROM t INNER JOIN t AS t2;ERROR 1052 (23000): Column 'i' in field list is ambiguous
    mysql> SELECT * FROM t LEFT JOIN t AS t2 ON i = i;ERROR 1052 (23000): Column 'i' in on clause is ambiguous

    解決方法:

    • カラムを該当するテーブル名で修飾します。

      mysql> SELECT t2.i FROM t INNER JOIN t AS t2;
    • 修飾が不要になるようにクエリーを変更します。

      mysql> SELECT * FROM t LEFT JOIN t AS t2 USING (i);
  • エラー: 1053 SQLSTATE: 08S01 (ER_SERVER_SHUTDOWN)

    メッセージ: サーバーをシャットダウン中です

  • エラー: 1054 SQLSTATE: 42S22 (ER_BAD_FIELD_ERROR)

    メッセージ: カラム '%s' は '%s' にはありません

  • エラー: 1055 SQLSTATE: 42000 (ER_WRONG_FIELD_WITH_GROUP)

    メッセージ: '%s' は GROUP BY 句で指定されていません

  • エラー: 1056 SQLSTATE: 42000 (ER_WRONG_GROUP_FIELD)

    メッセージ: '%s' でのグループ化はできません

  • エラー: 1057 SQLSTATE: 42000 (ER_WRONG_SUM_SELECT)

    メッセージ: 集計関数と通常のカラムが同時に指定されています

  • エラー: 1058 SQLSTATE: 21S01 (ER_WRONG_VALUE_COUNT)

    メッセージ: カラム数が値の個数と一致しません

  • エラー: 1059 SQLSTATE: 42000 (ER_TOO_LONG_IDENT)

    メッセージ: 識別子名 '%s' は長すぎます

  • エラー: 1060 SQLSTATE: 42S21 (ER_DUP_FIELDNAME)

    メッセージ: カラム名 '%s' は重複しています

  • エラー: 1061 SQLSTATE: 42000 (ER_DUP_KEYNAME)

    メッセージ: キー名 '%s' は重複しています

  • エラー: 1062 SQLSTATE: 23000 (ER_DUP_ENTRY)

    メッセージ: '%s' はキー %d で重複しています

    このエラーメッセージで返されるメッセージでは、ER_DUP_ENTRY_WITH_KEY_NAME の書式文字列が使用されます。

  • エラー: 1063 SQLSTATE: 42000 (ER_WRONG_FIELD_SPEC)

    メッセージ: カラム '%s' のカラム指定子が不正です

  • エラー: 1064 SQLSTATE: 42000 (ER_PARSE_ERROR)

    メッセージ: %s : '%s' 付近 %d 行目

  • エラー: 1065 SQLSTATE: 42000 (ER_EMPTY_QUERY)

    メッセージ: クエリーが空です

  • エラー: 1066 SQLSTATE: 42000 (ER_NONUNIQ_TABLE)

    メッセージ: 表名/エイリアス名 '%s' は一意ではありません

  • エラー: 1067 SQLSTATE: 42000 (ER_INVALID_DEFAULT)

    メッセージ: '%s' へのデフォルト値が無効です

  • エラー: 1068 SQLSTATE: 42000 (ER_MULTIPLE_PRI_KEY)

    メッセージ: PRIMARY KEY が複数定義されています

  • エラー: 1069 SQLSTATE: 42000 (ER_TOO_MANY_KEYS)

    メッセージ: キーの数が多すぎます。最大 %d 個までです

  • エラー: 1070 SQLSTATE: 42000 (ER_TOO_MANY_KEY_PARTS)

    メッセージ: 索引のキー列指定が多すぎます。最大 %d 個までです

  • エラー: 1071 SQLSTATE: 42000 (ER_TOO_LONG_KEY)

    メッセージ: 索引のキーが長すぎます。最大 %d バイトまでです

  • エラー: 1072 SQLSTATE: 42000 (ER_KEY_COLUMN_DOES_NOT_EXITS)

    メッセージ: キーカラム '%s' は表にありません

  • エラー: 1073 SQLSTATE: 42000 (ER_BLOB_USED_AS_KEY)

    メッセージ: 指定されたテーブルタイプでは、BLOB カラム '%s' をキーに指定できません

  • エラー: 1074 SQLSTATE: 42000 (ER_TOO_BIG_FIELDLENGTH)

    メッセージ: カラム '%s' のサイズ定義が大きすぎます (最大 %lu まで)。代わりに BLOB または TEXT を使用してください

  • エラー: 1075 SQLSTATE: 42000 (ER_WRONG_AUTO_KEY)

    メッセージ: 不正な表定義です。AUTO_INCREMENT カラムは 1 個までで、キーを定義する必要があります

  • エラー: 1076 SQLSTATE: HY000 (ER_READY)

    メッセージ: %s: 接続準備完了。バージョン: '%s' ソケット: '%s' ポート: %d

  • エラー: 1077 SQLSTATE: HY000 (ER_NORMAL_SHUTDOWN)

    メッセージ: %s: 通常シャットダウン

  • エラー: 1078 SQLSTATE: HY000 (ER_GOT_SIGNAL)

    メッセージ: %s: シグナル %d を受信しました。強制終了します !

  • エラー: 1079 SQLSTATE: HY000 (ER_SHUTDOWN_COMPLETE)

    メッセージ: %s: シャットダウン完了

  • エラー: 1080 SQLSTATE: 08S01 (ER_FORCING_CLOSE)

    メッセージ: %s: スレッド %ld を強制終了します (ユーザー: '%s')

  • エラー: 1081 SQLSTATE: 08S01 (ER_IPSOCK_ERROR)

    メッセージ: IP ソケットを作成できません

  • エラー: 1082 SQLSTATE: 42S12 (ER_NO_SUCH_INDEX)

    メッセージ: 表 '%s' に以前 CREATE INDEX で作成されたインデックスがありません。表を作り直してください

  • エラー: 1083 SQLSTATE: 42000 (ER_WRONG_FIELD_TERMINATORS)

    メッセージ: フィールド区切り文字引数が予期しない使われ方をしています。マニュアルを確認してください

  • エラー: 1084 SQLSTATE: 42000 (ER_BLOBS_AND_NO_TERMINATED)

    メッセージ: BLOB には固定長レコードが使用できません。'FIELDS TERMINATED BY' 句を使用してください

  • エラー: 1085 SQLSTATE: HY000 (ER_TEXTFILE_NOT_READABLE)

    メッセージ: ファイル '%s' はデータベースディレクトリにあるか、すべてのユーザーから読める必要があります

  • エラー: 1086 SQLSTATE: HY000 (ER_FILE_EXISTS_ERROR)

    メッセージ: ファイル '%s' はすでに存在します

  • エラー: 1087 SQLSTATE: HY000 (ER_LOAD_INFO)

    メッセージ: レコード数: %ld 削除: %ld スキップ: %ld 警告: %ld

  • エラー: 1088 SQLSTATE: HY000 (ER_ALTER_INFO)

    メッセージ: レコード数: %ld 重複: %ld

  • エラー: 1089 SQLSTATE: HY000 (ER_WRONG_SUB_KEY)

    メッセージ: キーのプレフィックスが不正です。キーが文字列ではないか、プレフィックス長がキーよりも長いか、ストレージエンジンが一意索引のプレフィックス指定をサポートしていません

  • エラー: 1090 SQLSTATE: 42000 (ER_CANT_REMOVE_ALL_FIELDS)

    メッセージ: ALTER TABLE ではすべてのカラムの削除はできません。DROP TABLE を使用してください

  • エラー: 1091 SQLSTATE: 42000 (ER_CANT_DROP_FIELD_OR_KEY)

    メッセージ: '%s' を削除できません。カラム/キーの存在を確認してください

  • エラー: 1092 SQLSTATE: HY000 (ER_INSERT_INFO)

    メッセージ: レコード数: %ld 重複数: %l 警告: %ld

  • エラー: 1093 SQLSTATE: HY000 (ER_UPDATE_TABLE_USED)

    メッセージ: FROM 句にある表 '%s' は UPDATE の対象にできません

  • エラー: 1094 SQLSTATE: HY000 (ER_NO_SUCH_THREAD)

    メッセージ: 不明なスレッド ID です: %lu

  • エラー: 1095 SQLSTATE: HY000 (ER_KILL_DENIED_ERROR)

    メッセージ: スレッド %lu のオーナーではありません

  • エラー: 1096 SQLSTATE: HY000 (ER_NO_TABLES_USED)

    メッセージ: 表が指定されていません

  • エラー: 1097 SQLSTATE: HY000 (ER_TOO_BIG_SET)

    メッセージ: SET 型のカラム '%s' の文字列の数が多すぎます

  • エラー: 1098 SQLSTATE: HY000 (ER_NO_UNIQUE_LOGFILE)

    メッセージ: 一意なログファイル名 %s.(1-999) を生成できません

  • エラー: 1099 SQLSTATE: HY000 (ER_TABLE_NOT_LOCKED_FOR_WRITE)

    メッセージ: 表 '%s' は READ ロックされていて、更新できません

  • エラー: 1100 SQLSTATE: HY000 (ER_TABLE_NOT_LOCKED)

    メッセージ: 表 '%s' は LOCK TABLES でロックされていません

  • エラー: 1101 SQLSTATE: 42000 (ER_BLOB_CANT_HAVE_DEFAULT)

    メッセージ: BLOB/TEXT カラム '%s' にはデフォルト値を指定できません

  • エラー: 1102 SQLSTATE: 42000 (ER_WRONG_DB_NAME)

    メッセージ: データベース名 '%s' は不正です

  • エラー: 1103 SQLSTATE: 42000 (ER_WRONG_TABLE_NAME)

    メッセージ: 表名 '%s' は不正です

  • エラー: 1104 SQLSTATE: 42000 (ER_TOO_BIG_SELECT)

    メッセージ: SELECT が MAX_JOIN_SIZE を超える行数を処理しました。WHERE 句を確認し、SELECT 文に問題がなければ、SET SQL_BIG_SELECTS=1 または SET MAX_JOIN_SIZE=# を使用してください

  • エラー: 1105 SQLSTATE: HY000 (ER_UNKNOWN_ERROR)

    メッセージ: 不明なエラー

  • エラー: 1106 SQLSTATE: 42000 (ER_UNKNOWN_PROCEDURE)

    メッセージ: '%s' は不明なプロシージャーです

  • エラー: 1107 SQLSTATE: 42000 (ER_WRONG_PARAMCOUNT_TO_PROCEDURE)

    メッセージ: プロシージャー '%s' へのパラメータ数が不正です

  • エラー: 1108 SQLSTATE: HY000 (ER_WRONG_PARAMETERS_TO_PROCEDURE)

    メッセージ: プロシージャー '%s' へのパラメータが不正です

  • エラー: 1109 SQLSTATE: 42S02 (ER_UNKNOWN_TABLE)

    メッセージ: '%s' は %s では不明な表です

  • エラー: 1110 SQLSTATE: 42000 (ER_FIELD_SPECIFIED_TWICE)

    メッセージ: カラム '%s' は 2 回指定されています

  • エラー: 1111 SQLSTATE: HY000 (ER_INVALID_GROUP_FUNC_USE)

    メッセージ: 集計関数の使用方法が不正です

  • エラー: 1112 SQLSTATE: 42000 (ER_UNSUPPORTED_EXTENSION)

    メッセージ: 表 '%s' は、この MySQL バージョンには無い機能を使用しています

  • エラー: 1113 SQLSTATE: 42000 (ER_TABLE_MUST_HAVE_COLUMNS)

    メッセージ: 表には最低でも 1 個のカラムが必要です

  • エラー: 1114 SQLSTATE: HY000 (ER_RECORD_FILE_FULL)

    メッセージ: 表 '%s' は満杯です。

  • エラー: 1115 SQLSTATE: 42000 (ER_UNKNOWN_CHARACTER_SET)

    メッセージ: 不明な文字コードセット: '%s'

  • エラー: 1116 SQLSTATE: HY000 (ER_TOO_MANY_TABLES)

    メッセージ: 表が多すぎます。MySQL が JOIN できる表は %d 個までです。

  • エラー: 1117 SQLSTATE: HY000 (ER_TOO_MANY_FIELDS)

    メッセージ: カラムが多すぎます。

  • エラー: 1118 SQLSTATE: 42000 (ER_TOO_BIG_ROWSIZE)

    メッセージ: 行サイズが大きすぎます。この表の最大行サイズは BLOB を含まずに %ld です。格納時のオーバーヘッドも含まれます (マニュアルを確認してください)。カラムを TEXT または BLOB に変更する必要があります。

  • エラー: 1119 SQLSTATE: HY000 (ER_STACK_OVERRUN)

    メッセージ: スレッドスタック不足です (使用: %ld ; サイズ: %ld)。必要に応じて、より大きい値で 'mysqld --thread_stack=#' の指定をしてください。

  • エラー: 1120 SQLSTATE: 42000 (ER_WRONG_OUTER_JOIN)

    メッセージ: OUTER JOIN に相互依存が見つかりました。ON 句の条件を確認してください。

  • エラー: 1121 SQLSTATE: 42000 (ER_NULL_COLUMN_IN_INDEX)

    メッセージ: テーブルハンドラは、指定されたインデックスで NULL をサポートしていません。カラム '%s' を NOT NULL に変更するか、別のハンドラを使用してください

  • エラー: 1122 SQLSTATE: HY000 (ER_CANT_FIND_UDF)

    メッセージ: 関数 '%s' をロードできません。

  • エラー: 1123 SQLSTATE: HY000 (ER_CANT_INITIALIZE_UDF)

    メッセージ: 関数 '%s' を初期化できません。%s

  • エラー: 1124 SQLSTATE: HY000 (ER_UDF_NO_PATHS)

    メッセージ: 共有ライブラリにはパスを指定できません。

  • エラー: 1125 SQLSTATE: HY000 (ER_UDF_EXISTS)

    メッセージ: 関数 '%s' はすでに定義されています。

  • エラー: 1126 SQLSTATE: HY000 (ER_CANT_OPEN_LIBRARY)

    メッセージ: 共有ライブラリ '%s' を開く事ができません。(エラー番号: %d %s)

  • エラー: 1127 SQLSTATE: HY000 (ER_CANT_FIND_DL_ENTRY)

    メッセージ: 関数 '%s' は共有ライブラリ中にありません

  • エラー: 1128 SQLSTATE: HY000 (ER_FUNCTION_NOT_DEFINED)

    メッセージ: 関数 '%s' は定義されていません。

  • エラー: 1129 SQLSTATE: HY000 (ER_HOST_IS_BLOCKED)

    メッセージ: 接続エラーが多いため、ホスト '%s' は拒否されました。'mysqladmin flush-hosts' で解除できます。

  • エラー: 1130 SQLSTATE: HY000 (ER_HOST_NOT_PRIVILEGED)

    メッセージ: ホスト '%s' からのこの MySQL Server への接続は許可されていません

  • エラー: 1131 SQLSTATE: 42000 (ER_PASSWORD_ANONYMOUS_USER)

    メッセージ: MySQL を匿名ユーザーで使用しているので、パスワードの変更はできません。

  • エラー: 1132 SQLSTATE: 42000 (ER_PASSWORD_NOT_ALLOWED)

    メッセージ: 他のユーザーのパスワードを変更するためには、mysql データベースの表を更新する権限が必要です。

  • エラー: 1133 SQLSTATE: 42000 (ER_PASSWORD_NO_MATCH)

    メッセージ: ユーザーテーブルに該当するレコードが見つかりません。

  • エラー: 1134 SQLSTATE: HY000 (ER_UPDATE_INFO)

    メッセージ: 該当した行: %ld 変更: %ld 警告: %ld

  • エラー: 1135 SQLSTATE: HY000 (ER_CANT_CREATE_THREAD)

    メッセージ: 新規にスレッドを作成できません。(エラー番号 %d) もしも使用可能メモリーの不足でなければ、OS 依存のバグである可能性があります。

  • エラー: 1136 SQLSTATE: 21S01 (ER_WRONG_VALUE_COUNT_ON_ROW)

    メッセージ: %ld 行目で、カラムの数が値の数と一致しません。

  • エラー: 1137 SQLSTATE: HY000 (ER_CANT_REOPEN_TABLE)

    メッセージ: 表を再オープンできません。: '%s'

  • エラー: 1138 SQLSTATE: 22004 (ER_INVALID_USE_OF_NULL)

    メッセージ: NULL 値の使用方法が不適切です。

  • エラー: 1139 SQLSTATE: 42000 (ER_REGEXP_ERROR)

    メッセージ: regexp がエラー '%s' を返しました。

  • エラー: 1140 SQLSTATE: 42000 (ER_MIX_OF_GROUP_FUNC_AND_FIELDS)

    メッセージ: GROUP BY 句が無い場合、集計関数 (MIN(),MAX(),COUNT(),...) と通常のカラムを同時に使用できません。

  • エラー: 1141 SQLSTATE: 42000 (ER_NONEXISTING_GRANT)

    メッセージ: ユーザー '%s' (ホスト '%s' 上) は許可されていません。

  • エラー: 1142 SQLSTATE: 42000 (ER_TABLEACCESS_DENIED_ERROR)

    メッセージ: コマンド %s はユーザー '%s'@'%s' の表 '%s' の使用に関して許可されていません。

  • エラー: 1143 SQLSTATE: 42000 (ER_COLUMNACCESS_DENIED_ERROR)

    メッセージ: コマンド %s はユーザー '%s'@'%s' のカラム '%s'(表 '%s') の利用に関して許可されていません。

  • エラー: 1144 SQLSTATE: 42000 (ER_ILLEGAL_GRANT_FOR_TABLE)

    メッセージ: 不正な GRANT/REVOKE コマンドです。どの権限で利用可能かはマニュアルを参照してください。

  • エラー: 1145 SQLSTATE: 42000 (ER_GRANT_WRONG_HOST_OR_USER)

    メッセージ: GRANT コマンドへの、ホスト名やユーザー名が長すぎます。

  • エラー: 1146 SQLSTATE: 42S02 (ER_NO_SUCH_TABLE)

    メッセージ: 表 '%s.%s' は存在しません。

  • エラー: 1147 SQLSTATE: 42000 (ER_NONEXISTING_TABLE_GRANT)

    メッセージ: ユーザー '%s' (ホスト '%s' 上) の表 '%s' への権限は定義されていません。

  • エラー: 1148 SQLSTATE: 42000 (ER_NOT_ALLOWED_COMMAND)

    メッセージ: この MySQL バージョンでは利用できないコマンドです。

  • エラー: 1149 SQLSTATE: 42000 (ER_SYNTAX_ERROR)

    メッセージ: SQL 構文エラーです。バージョンに対応するマニュアルを参照して正しい構文を確認してください。

  • エラー: 1150 SQLSTATE: HY000 (ER_DELAYED_CANT_CHANGE_LOCK)

    メッセージ: 'Delayed insert' スレッドが表 '%s' のロックを取得できませんでした。

  • エラー: 1151 SQLSTATE: HY000 (ER_TOO_MANY_DELAYED_THREADS)

    メッセージ: 'Delayed insert' スレッドが多すぎます。

  • エラー: 1152 SQLSTATE: 08S01 (ER_ABORTING_CONNECTION)

    メッセージ: 接続 %ld が中断されました。データベース: '%s' ユーザー: '%s' (%s)

  • エラー: 1153 SQLSTATE: 08S01 (ER_NET_PACKET_TOO_LARGE)

    メッセージ: 'max_allowed_packet' よりも大きなパケットを受信しました。

  • エラー: 1154 SQLSTATE: 08S01 (ER_NET_READ_ERROR_FROM_PIPE)

    メッセージ: 接続パイプの読み取りエラーです。

  • エラー: 1155 SQLSTATE: 08S01 (ER_NET_FCNTL_ERROR)

    メッセージ: fcntl() がエラーを返しました。

  • エラー: 1156 SQLSTATE: 08S01 (ER_NET_PACKETS_OUT_OF_ORDER)

    メッセージ: 不正な順序のパケットを受信しました。

  • エラー: 1157 SQLSTATE: 08S01 (ER_NET_UNCOMPRESS_ERROR)

    メッセージ: 圧縮パケットの展開ができませんでした。

  • エラー: 1158 SQLSTATE: 08S01 (ER_NET_READ_ERROR)

    メッセージ: パケットの受信でエラーが発生しました。

  • エラー: 1159 SQLSTATE: 08S01 (ER_NET_READ_INTERRUPTED)

    メッセージ: パケットの受信でタイムアウトが発生しました。

  • エラー: 1160 SQLSTATE: 08S01 (ER_NET_ERROR_ON_WRITE)

    メッセージ: パケットの送信でエラーが発生しました。

  • エラー: 1161 SQLSTATE: 08S01 (ER_NET_WRITE_INTERRUPTED)

    メッセージ: パケットの送信でタイムアウトが発生しました。

  • エラー: 1162 SQLSTATE: 42000 (ER_TOO_LONG_STRING)

    メッセージ: 結果の文字列が 'max_allowed_packet' よりも大きいです。

  • エラー: 1163 SQLSTATE: 42000 (ER_TABLE_CANT_HANDLE_BLOB)

    メッセージ: 指定されたテーブルタイプでは、BLOB/TEXT 型のカラムを使用できません。

  • エラー: 1164 SQLSTATE: 42000 (ER_TABLE_CANT_HANDLE_AUTO_INCREMENT)

    メッセージ: 指定されたテーブルタイプでは、AUTO_INCREMENT のカラムを使用できません。

  • エラー: 1165 SQLSTATE: HY000 (ER_DELAYED_INSERT_TABLE_LOCKED)

    メッセージ: 表 '%s' は LOCK TABLES でロックされているため、INSERT DELAYED を使用できません。

  • エラー: 1166 SQLSTATE: 42000 (ER_WRONG_COLUMN_NAME)

    メッセージ: カラム名 '%s' は不正です。

  • エラー: 1167 SQLSTATE: 42000 (ER_WRONG_KEY_COLUMN)

    メッセージ: 使用のストレージエンジンはカラム '%s' のインデックスを作成できません。

  • エラー: 1168 SQLSTATE: HY000 (ER_WRONG_MRG_TABLE)

    メッセージ: MERGE 表の構成表がオープンできません。列定義が異なるか、MyISAM 表ではないか、存在しません。

  • エラー: 1169 SQLSTATE: 23000 (ER_DUP_UNIQUE)

    メッセージ: 一意制約違反のため、表 '%s' に書き込めません。

  • エラー: 1170 SQLSTATE: 42000 (ER_BLOB_KEY_WITHOUT_LENGTH)

    メッセージ: BLOB/TEXT カラム '%s' をキーに使用するには長さ指定が必要です

  • エラー: 1171 SQLSTATE: 42000 (ER_PRIMARY_CANT_HAVE_NULL)

    メッセージ: PRIMARY KEY の列はすべて NOT NULL でなければいけません。UNIQUE インデックスであれば NULL を含むことが可能です。

  • エラー: 1172 SQLSTATE: 42000 (ER_TOO_MANY_ROWS)

    メッセージ: 結果が 2 行以上です。

  • エラー: 1173 SQLSTATE: 42000 (ER_REQUIRES_PRIMARY_KEY)

    メッセージ: 使用のテーブルタイプでは、主キーが必要です

  • エラー: 1174 SQLSTATE: HY000 (ER_NO_RAID_COMPILED)

    メッセージ: このバージョンの MySQL は RAID サポートを含めてコンパイルされていません。

  • エラー: 1175 SQLSTATE: HY000 (ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE)

    メッセージ: 'safe update mode' で、索引を利用する WHERE 句の無い更新処理を実行しようとしました。

  • エラー: 1176 SQLSTATE: 42000 (ER_KEY_DOES_NOT_EXITS)

    メッセージ: キー '%s' は表 '%s' には存在しません。

  • エラー: 1177 SQLSTATE: 42000 (ER_CHECK_NO_SUCH_TABLE)

    メッセージ: 表をオープンできません。

  • エラー: 1178 SQLSTATE: 42000 (ER_CHECK_NOT_IMPLEMENTED)

    メッセージ: この表のストレージエンジンは '%s' を利用できません。

  • エラー: 1179 SQLSTATE: 25000 (ER_CANT_DO_THIS_DURING_AN_TRANSACTION)

    メッセージ: このコマンドはトランザクション内で実行できません。

  • エラー: 1180 SQLSTATE: HY000 (ER_ERROR_DURING_COMMIT)

    メッセージ: COMMIT 中にエラー %d が発生しました。

  • エラー: 1181 SQLSTATE: HY000 (ER_ERROR_DURING_ROLLBACK)

    メッセージ: ROLLBACK 中にエラー %d が発生しました。

  • エラー: 1182 SQLSTATE: HY000 (ER_ERROR_DURING_FLUSH_LOGS)

    メッセージ: FLUSH_LOGS 中にエラー %d が発生しました。

  • エラー: 1183 SQLSTATE: HY000 (ER_ERROR_DURING_CHECKPOINT)

    メッセージ: CHECKPOINT 中にエラー %d が発生しました。

  • エラー: 1184 SQLSTATE: 08S01 (ER_NEW_ABORTING_CONNECTION)

    メッセージ: 接続 %ld が中断されました。データベース: '%s' ユーザー: '%s' ホスト: '%s' (%s)

  • エラー: 1185 SQLSTATE: HY000 (ER_DUMP_NOT_IMPLEMENTED)

    メッセージ: この表のストレージエンジンはバイナリ形式の表ダンプを利用できません。

  • エラー: 1186 SQLSTATE: HY000 (ER_FLUSH_MASTER_BINLOG_CLOSED)

    メッセージ: バイナリログがクローズされています。RESET MASTER を実行できません。

  • エラー: 1187 SQLSTATE: HY000 (ER_INDEX_REBUILD)

    メッセージ: ダンプ表 '%s' のインデックス再構築に失敗しました。

  • エラー: 1188 SQLSTATE: HY000 (ER_MASTER)

    メッセージ: マスターでエラーが発生: '%s'

  • エラー: 1189 SQLSTATE: 08S01 (ER_MASTER_NET_READ)

    メッセージ: マスターからのデータ受信中のネットワークエラー

  • エラー: 1190 SQLSTATE: 08S01 (ER_MASTER_NET_WRITE)

    メッセージ: マスターへのデータ送信中のネットワークエラー

  • エラー: 1191 SQLSTATE: HY000 (ER_FT_MATCHING_KEY_NOT_FOUND)

    メッセージ: カラムリストに対応する全文インデックス (FULLTEXT) が見つかりません。

  • エラー: 1192 SQLSTATE: HY000 (ER_LOCK_OR_ACTIVE_TRANSACTION)

    メッセージ: すでにアクティブな表ロックやトランザクションがあるため、コマンドを実行できません。

  • エラー: 1193 SQLSTATE: HY000 (ER_UNKNOWN_SYSTEM_VARIABLE)

    メッセージ: '%s' は不明なシステム変数です。

  • エラー: 1194 SQLSTATE: HY000 (ER_CRASHED_ON_USAGE)

    メッセージ: 表 '%s' は壊れています。修復が必要です。

  • エラー: 1195 SQLSTATE: HY000 (ER_CRASHED_ON_REPAIR)

    メッセージ: 表 '%s' は壊れています。修復 (自動 ?) にも失敗しています。

  • エラー: 1196 SQLSTATE: HY000 (ER_WARNING_NOT_COMPLETE_ROLLBACK)

    メッセージ: トランザクション対応ではない表への変更はロールバックされません。

  • エラー: 1197 SQLSTATE: HY000 (ER_TRANS_CACHE_FULL)

    メッセージ: 複数ステートメントから成るトランザクションが 'max_binlog_cache_size' 以上の容量を必要としました。このシステム変数を増加して、再試行してください。

  • エラー: 1198 SQLSTATE: HY000 (ER_SLAVE_MUST_STOP)

    メッセージ: この処理は、稼働中のスレーブでは実行できません。あらかじめ STOP SLAVE コマンドを実行してください。

  • エラー: 1199 SQLSTATE: HY000 (ER_SLAVE_NOT_RUNNING)

    メッセージ: この処理は、稼働中のスレーブでなければ実行できません。スレーブの構成をして START SLAVE コマンドを実行してください。

  • エラー: 1200 SQLSTATE: HY000 (ER_BAD_SLAVE)

    メッセージ: このサーバーはスレーブとして構成されていません。コンフィグファイルか CHANGE MASTER TO コマンドで設定してください。

  • エラー: 1201 SQLSTATE: HY000 (ER_MASTER_INFO)

    メッセージ: 'master info' 構造体の初期化ができませんでした。MySQL エラーログでエラーメッセージを確認してください。

  • エラー: 1202 SQLSTATE: HY000 (ER_SLAVE_THREAD)

    メッセージ: スレーブスレッドを作成できません。システムリソースを確認してください。

  • エラー: 1203 SQLSTATE: 42000 (ER_TOO_MANY_USER_CONNECTIONS)

    メッセージ: ユーザー '%s' はすでに 'max_user_connections' 以上のアクティブな接続を行っています。

  • エラー: 1204 SQLSTATE: HY000 (ER_SET_CONSTANTS_ONLY)

    メッセージ: SET 処理が失敗しました。

  • エラー: 1205 SQLSTATE: HY000 (ER_LOCK_WAIT_TIMEOUT)

    メッセージ: ロック待ちがタイムアウトしました。トランザクションを再試行してください。

  • エラー: 1206 SQLSTATE: HY000 (ER_LOCK_TABLE_FULL)

    メッセージ: ロックの数が多すぎます。

  • エラー: 1207 SQLSTATE: 25000 (ER_READ_ONLY_TRANSACTION)

    メッセージ: 読み取り専用トランザクションです。

  • エラー: 1208 SQLSTATE: HY000 (ER_DROP_DB_WITH_READ_LOCK)

    メッセージ: グローバルリードロックを保持している間は、DROP DATABASE を実行できません。

  • エラー: 1209 SQLSTATE: HY000 (ER_CREATE_DB_WITH_READ_LOCK)

    メッセージ: グローバルリードロックを保持している間は、CREATE DATABASE を実行できません。

  • エラー: 1210 SQLSTATE: HY000 (ER_WRONG_ARGUMENTS)

    メッセージ: %s の引数が不正です

  • エラー: 1211 SQLSTATE: 42000 (ER_NO_PERMISSION_TO_CREATE_USER)

    メッセージ: '%s'@'%s' は新しいユーザーを作成できません。

  • エラー: 1212 SQLSTATE: HY000 (ER_UNION_TABLES_IN_DIFFERENT_DIR)

    メッセージ: 不正な表定義です。MERGE 表の構成表はすべて同じデータベース内になければなりません。

  • エラー: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK)

    メッセージ: ロック取得中にデッドロックが検出されました。トランザクションを再試行してください。

  • エラー: 1214 SQLSTATE: HY000 (ER_TABLE_CANT_HANDLE_FT)

    メッセージ: 使用の表は全文インデックスを利用できません。

  • エラー: 1215 SQLSTATE: HY000 (ER_CANNOT_ADD_FOREIGN)

    メッセージ: 外部キー制約を追加できません。

  • エラー: 1216 SQLSTATE: 23000 (ER_NO_REFERENCED_ROW)

    メッセージ: 親キーがありません。外部キー制約違反です。

  • エラー: 1217 SQLSTATE: 23000 (ER_ROW_IS_REFERENCED)

    メッセージ: 子レコードがあります。外部キー制約違反です。

  • エラー: 1218 SQLSTATE: 08S01 (ER_CONNECT_TO_MASTER)

    メッセージ: マスターへの接続エラー: %s

  • エラー: 1219 SQLSTATE: HY000 (ER_QUERY_ON_MASTER)

    メッセージ: マスターでのクエリー実行エラー: %s

  • エラー: 1220 SQLSTATE: HY000 (ER_ERROR_WHEN_EXECUTING_COMMAND)

    メッセージ: %s コマンドの実行エラー: %s

  • エラー: 1221 SQLSTATE: HY000 (ER_WRONG_USAGE)

    メッセージ: %s の %s に関する不正な使用法です。

  • エラー: 1222 SQLSTATE: 21000 (ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT)

    メッセージ: 使用の SELECT 文が返すカラム数が違います。

  • エラー: 1223 SQLSTATE: HY000 (ER_CANT_UPDATE_WITH_READLOCK)

    メッセージ: 競合するリードロックを保持しているので、クエリーを実行できません。

  • エラー: 1224 SQLSTATE: HY000 (ER_MIXING_NOT_ALLOWED)

    メッセージ: トランザクション対応の表と非対応の表の同時使用は無効化されています。

  • エラー: 1225 SQLSTATE: HY000 (ER_DUP_ARGUMENT)

    メッセージ: オプション '%s' が 2 度使用されています。

  • エラー: 1226 SQLSTATE: 42000 (ER_USER_LIMIT_REACHED)

    メッセージ: ユーザー '%s' はリソースの上限 '%s' に達しました。(現在値: %ld)

  • エラー: 1227 SQLSTATE: 42000 (ER_SPECIFIC_ACCESS_DENIED_ERROR)

    メッセージ: アクセスは拒否されました。この操作には %s 権限が (複数の場合はどれか 1 つ) 必要です。

  • エラー: 1228 SQLSTATE: HY000 (ER_LOCAL_VARIABLE)

    メッセージ: 変数 '%s' はセッション変数です。SET GLOBAL では使用できません。

  • エラー: 1229 SQLSTATE: HY000 (ER_GLOBAL_VARIABLE)

    メッセージ: 変数 '%s' はグローバル変数です。SET GLOBAL を使用してください。

  • エラー: 1230 SQLSTATE: 42000 (ER_NO_DEFAULT)

    メッセージ: 変数 '%s' にはデフォルト値がありません。

  • エラー: 1231 SQLSTATE: 42000 (ER_WRONG_VALUE_FOR_VAR)

    メッセージ: 変数 '%s' に値 '%s' を設定できません。

  • エラー: 1232 SQLSTATE: 42000 (ER_WRONG_TYPE_FOR_VAR)

    メッセージ: 変数 '%s' への引数の型が不正です

  • エラー: 1233 SQLSTATE: HY000 (ER_VAR_CANT_BE_READ)

    メッセージ: 変数 '%s' は書き込み専用です。読み取りはできません。

  • エラー: 1234 SQLSTATE: 42000 (ER_CANT_USE_OPTION_HERE)

    メッセージ: '%s' の使用法または場所が不正です。

  • エラー: 1235 SQLSTATE: 42000 (ER_NOT_SUPPORTED_YET)

    メッセージ: このバージョンの MySQL では、まだ '%s' を利用できません。

  • エラー: 1236 SQLSTATE: HY000 (ER_MASTER_FATAL_ERROR_READING_BINLOG)

    メッセージ: 致命的なエラー %d: '%s' がマスターでバイナリログ読み取り中に発生しました。

  • エラー: 1237 SQLSTATE: HY000 (ER_SLAVE_IGNORED_TABLE)

    メッセージ: replicate-*-table ルールに従って、スレーブ SQL スレッドはクエリーを無視しました。

  • エラー: 1238 SQLSTATE: HY000 (ER_INCORRECT_GLOBAL_LOCAL_VAR)

    メッセージ: 変数 '%s' は %s 変数です。

  • エラー: 1239 SQLSTATE: 42000 (ER_WRONG_FK_DEF)

    メッセージ: 外部キー '%s' の定義の不正: %s

  • エラー: 1240 SQLSTATE: HY000 (ER_KEY_REF_DO_NOT_MATCH_TABLE_REF)

    メッセージ: 外部キーの参照表と定義が一致しません。

  • エラー: 1241 SQLSTATE: 21000 (ER_OPERAND_COLUMNS)

    メッセージ: オペランドに %d 個のカラムが必要です。

  • エラー: 1242 SQLSTATE: 21000 (ER_SUBQUERY_NO_1_ROW)

    メッセージ: サブクエリーが 2 行以上の結果を返します。

  • エラー: 1243 SQLSTATE: HY000 (ER_UNKNOWN_STMT_HANDLER)

    メッセージ: '%.*s' はプリペアドステートメントの不明なハンドルです (%s で指定されました)

  • エラー: 1244 SQLSTATE: HY000 (ER_CORRUPT_HELP_DB)

    メッセージ: ヘルプデータベースは壊れているか存在しません。

  • エラー: 1245 SQLSTATE: HY000 (ER_CYCLIC_REFERENCE)

    メッセージ: サブクエリーの参照がループしています。

  • エラー: 1246 SQLSTATE: HY000 (ER_AUTO_CONVERT)

    メッセージ: カラム '%s' を %s から %s へ変換します。

  • エラー: 1247 SQLSTATE: 42S22 (ER_ILLEGAL_REFERENCE)

    メッセージ: '%s' の参照はできません。(%s)

  • エラー: 1248 SQLSTATE: 42000 (ER_DERIVED_MUST_HAVE_ALIAS)

    メッセージ: 導出表にはエイリアスが必須です。

  • エラー: 1249 SQLSTATE: 01000 (ER_SELECT_REDUCED)

    メッセージ: Select %u は最適化によって減らされました。

  • エラー: 1250 SQLSTATE: 42000 (ER_TABLENAME_NOT_ALLOWED_HERE)

    メッセージ: 特定の SELECT のみで使用の表 '%s' は %s では使用できません。

  • エラー: 1251 SQLSTATE: 08004 (ER_NOT_SUPPORTED_AUTH_MODE)

    メッセージ: クライアントはサーバーが要求する認証プロトコルに対応できません。MySQL クライアントのアップグレードを検討してください。

  • エラー: 1252 SQLSTATE: 42000 (ER_SPATIAL_CANT_HAVE_NULL)

    メッセージ: SPATIAL インデックスのキー列は NOT NULL でなければいけません

  • エラー: 1253 SQLSTATE: 42000 (ER_COLLATION_CHARSET_MISMATCH)

    メッセージ: COLLATION '%s' は CHARACTER SET '%s' に適用できません。

  • エラー: 1254 SQLSTATE: HY000 (ER_SLAVE_WAS_RUNNING)

    メッセージ: スレーブはすでに稼働中です。

  • エラー: 1255 SQLSTATE: HY000 (ER_SLAVE_WAS_NOT_RUNNING)

    メッセージ: スレーブはすでに停止しています。

  • エラー: 1256 SQLSTATE: HY000 (ER_TOO_BIG_FOR_UNCOMPRESS)

    メッセージ: 展開後のデータが大きすぎます。最大サイズは %d です。(展開後データの長さ情報が壊れている可能性もあります。)

  • エラー: 1257 SQLSTATE: HY000 (ER_ZLIB_Z_MEM_ERROR)

    メッセージ: ZLIB: メモリー不足です。

  • エラー: 1258 SQLSTATE: HY000 (ER_ZLIB_Z_BUF_ERROR)

    メッセージ: ZLIB: 出力バッファーに十分な空きがありません。(展開後データの長さ情報が壊れている可能性もあります。)

  • エラー: 1259 SQLSTATE: HY000 (ER_ZLIB_Z_DATA_ERROR)

    メッセージ: ZLIB: 入力データが壊れています。

  • エラー: 1260 SQLSTATE: HY000 (ER_CUT_VALUE_GROUP_CONCAT)

    メッセージ: 行 %u は GROUP_CONCAT() によって切り捨てられました

  • エラー: 1261 SQLSTATE: 01000 (ER_WARN_TOO_FEW_RECORDS)

    メッセージ: 行 %ld はすべてのカラムへのデータを含んでいません。

  • エラー: 1262 SQLSTATE: 01000 (ER_WARN_TOO_MANY_RECORDS)

    メッセージ: 行 %ld はデータを切り捨てられました。カラムよりも多いデータを含んでいました。

  • エラー: 1263 SQLSTATE: 22004 (ER_WARN_NULL_TO_NOTNULL)

    メッセージ: カラムにデフォルト値が設定されました。NOT NULL のカラム '%s' に行 %ld で NULL が与えられました。

  • エラー: 1264 SQLSTATE: 22003 (ER_WARN_DATA_OUT_OF_RANGE)

    メッセージ: カラム '%s' 行 %ld の値が範囲外です

  • エラー: 1265 SQLSTATE: 01000 (WARN_DATA_TRUNCATED)

    メッセージ: カラム '%s' の行 %ld でデータが切り捨てられました。

  • エラー: 1266 SQLSTATE: HY000 (ER_WARN_USING_OTHER_HANDLER)

    メッセージ: ストレージエンジン %s が表 '%s' に利用されています。

  • エラー: 1267 SQLSTATE: HY000 (ER_CANT_AGGREGATE_2COLLATIONS)

    メッセージ: 照合順序 (%s,%s) と (%s,%s) の混在は操作 '%s' では不正です。

  • エラー: 1268 SQLSTATE: HY000 (ER_DROP_USER)

    メッセージ: 要求された 1 つ以上のユーザーをドロップできません

  • エラー: 1269 SQLSTATE: HY000 (ER_REVOKE_GRANTS)

    メッセージ: 指定されたユーザーから指定されたすべての権限を剥奪することができませんでした。

  • エラー: 1270 SQLSTATE: HY000 (ER_CANT_AGGREGATE_3COLLATIONS)

    メッセージ: 照合順序 (%s,%s), (%s,%s), (%s,%s) の混在は操作 '%s' では不正です。

  • エラー: 1271 SQLSTATE: HY000 (ER_CANT_AGGREGATE_NCOLLATIONS)

    メッセージ: 操作 '%s' では不正な照合順序の混在です。

  • エラー: 1272 SQLSTATE: HY000 (ER_VARIABLE_IS_NOT_STRUCT)

    メッセージ: 変数 '%s' は構造変数の構成要素ではありません。(XXXX.変数名という指定はできません。)

  • エラー: 1273 SQLSTATE: HY000 (ER_UNKNOWN_COLLATION)

    メッセージ: 不明な照合順序: '%s'

  • エラー: 1274 SQLSTATE: HY000 (ER_SLAVE_IGNORED_SSL_PARAMS)

    メッセージ: この MySQL スレーブは SSL サポートを含めてコンパイルされていないので、CHANGE MASTER の SSL パラメータは無視されました。今後 SSL サポートを持つ MySQL スレーブを起動する際に利用されます。

  • エラー: 1275 SQLSTATE: HY000 (ER_SERVER_IS_IN_SECURE_AUTH_MODE)

    メッセージ: サーバーは --secure-auth モードで稼働しています。しかし '%s'@'%s' は古い形式のパスワードを使用しています。新しい形式のパスワードに変更してください。

  • エラー: 1276 SQLSTATE: HY000 (ER_WARN_FIELD_RESOLVED)

    メッセージ: フィールドまたは参照 '%s%s%s%s%s' は SELECT #%d ではなく、SELECT #%d で解決されました。

  • エラー: 1277 SQLSTATE: HY000 (ER_BAD_SLAVE_UNTIL_COND)

    メッセージ: START SLAVE UNTIL へのパラメータまたはその組み合わせが不正です。

  • エラー: 1278 SQLSTATE: HY000 (ER_MISSING_SKIP_SLAVE)

    メッセージ: START SLAVE UNTIL で段階的にレプリケーションを行う際には、--skip-slave-start オプションを使うことを推奨します。使わない場合、スレーブの mysqld が不慮の再起動をすると問題が発生します。

  • エラー: 1279 SQLSTATE: HY000 (ER_UNTIL_COND_IGNORED)

    メッセージ: スレーブ SQL スレッドが開始されないため、UNTIL オプションは無視されました。

  • エラー: 1280 SQLSTATE: 42000 (ER_WRONG_NAME_FOR_INDEX)

    メッセージ: インデックス名 '%s' は不正です。

  • エラー: 1281 SQLSTATE: 42000 (ER_WRONG_NAME_FOR_CATALOG)

    メッセージ: カタログ名 '%s' は不正です。

  • エラー: 1282 SQLSTATE: HY000 (ER_WARN_QC_RESIZE)

    メッセージ: クエリーキャッシュのサイズを %lu にできませんでした。サイズは %lu になりました。

  • エラー: 1283 SQLSTATE: HY000 (ER_BAD_FT_COLUMN)

    メッセージ: カラム '%s' は全文インデックスのキーにはできません。

  • エラー: 1284 SQLSTATE: HY000 (ER_UNKNOWN_KEY_CACHE)

    メッセージ: '%s' は不明なキーキャッシュです。

  • エラー: 1285 SQLSTATE: HY000 (ER_WARN_HOSTNAME_WONT_WORK)

    メッセージ: MySQL は --skip-name-resolve モードで起動しています。このオプションを外して再起動しなければ、この権限操作は機能しません。

  • エラー: 1286 SQLSTATE: 42000 (ER_UNKNOWN_STORAGE_ENGINE)

    メッセージ: '%s' は不明なストレージエンジンです。

  • エラー: 1287 SQLSTATE: HY000 (ER_WARN_DEPRECATED_SYNTAX)

    メッセージ: '%s' は将来のリリースで廃止予定です。代わりに %s を使用してください

  • エラー: 1288 SQLSTATE: HY000 (ER_NON_UPDATABLE_TABLE)

    メッセージ: 対象表 %s は更新可能ではないので、%s を行えません

  • エラー: 1289 SQLSTATE: HY000 (ER_FEATURE_DISABLED)

    メッセージ: 機能 '%s' は無効です。利用するためには '%s' を含めてビルドした MySQL が必要です

  • エラー: 1290 SQLSTATE: HY000 (ER_OPTION_PREVENTS_STATEMENT)

    メッセージ: MySQL Server が %s オプションで実行されているので、このステートメントは実行できません

  • エラー: 1291 SQLSTATE: HY000 (ER_DUPLICATED_VALUE_IN_TYPE)

    メッセージ: カラム '%s' で、重複する値 '%s' が %s に指定されています

  • エラー: 1292 SQLSTATE: 22007 (ER_TRUNCATED_WRONG_VALUE)

    メッセージ: 不正な %s の値が切り捨てられました: '%s'

  • エラー: 1293 SQLSTATE: HY000 (ER_TOO_MUCH_AUTO_TIMESTAMP_COLS)

    メッセージ: 不正な表定義です。DEFAULT 句または ON UPDATE 句に CURRENT_TIMESTAMP をともなう TIMESTAMP 型のカラムは 1 つまでです

  • エラー: 1294 SQLSTATE: HY000 (ER_INVALID_ON_UPDATE)

    メッセージ: カラム '%s' に ON UPDATE 句は無効です

  • エラー: 1295 SQLSTATE: HY000 (ER_UNSUPPORTED_PS)

    メッセージ: このコマンドは、準備済みステートメントプロトコルではまだサポートされていません

  • エラー: 1296 SQLSTATE: HY000 (ER_GET_ERRMSG)

    メッセージ: エラー %d '%s' が %s から返されました

  • エラー: 1297 SQLSTATE: HY000 (ER_GET_TEMPORARY_ERRMSG)

    メッセージ: 一時エラー %d '%s' が %s から返されました

  • エラー: 1298 SQLSTATE: HY000 (ER_UNKNOWN_TIME_ZONE)

    メッセージ: 不明なタイムゾーンまたは不正なタイムゾーン: '%s'

  • エラー: 1299 SQLSTATE: HY000 (ER_WARN_INVALID_TIMESTAMP)

    メッセージ: カラム '%s' 行 %ld の TIMESTAMP 値が無効です

  • エラー: 1300 SQLSTATE: HY000 (ER_INVALID_CHARACTER_STRING)

    メッセージ: 無効な %s 文字列: '%s'

  • エラー: 1301 SQLSTATE: HY000 (ER_WARN_ALLOWED_PACKET_OVERFLOWED)

    メッセージ: %s() の結果は max_allowed_packet (%ld) よりも大きいサイズです- 切り捨てられました

  • エラー: 1302 SQLSTATE: HY000 (ER_CONFLICTING_DECLARATIONS)

    メッセージ: 宣言が競合しています: '%s%s' と '%s%s'

  • エラー: 1303 SQLSTATE: 2F003 (ER_SP_NO_RECURSIVE_CREATE)

    メッセージ: 別のストアドルーチン内からは %s を作成できません

  • エラー: 1304 SQLSTATE: 42000 (ER_SP_ALREADY_EXISTS)

    メッセージ: %s %s はすでに存在します

  • エラー: 1305 SQLSTATE: 42000 (ER_SP_DOES_NOT_EXIST)

    メッセージ: %s %s は存在しません

  • エラー: 1306 SQLSTATE: HY000 (ER_SP_DROP_FAILED)

    メッセージ: DROP %s %s が失敗しました

  • エラー: 1307 SQLSTATE: HY000 (ER_SP_STORE_FAILED)

    メッセージ: CREATE %s %s が失敗しました

  • エラー: 1308 SQLSTATE: 42000 (ER_SP_LILABEL_MISMATCH)

    メッセージ: 一致するラベルのない %s: %s

  • エラー: 1309 SQLSTATE: 42000 (ER_SP_LABEL_REDEFINE)

    メッセージ: ラベル %s を再定義しています

  • エラー: 1310 SQLSTATE: 42000 (ER_SP_LABEL_MISMATCH)

    メッセージ: 終了ラベル %s は一致するものがありません

  • エラー: 1311 SQLSTATE: 01000 (ER_SP_UNINIT_VAR)

    メッセージ: 初期化されていない変数 %s を参照しています

  • エラー: 1312 SQLSTATE: 0A000 (ER_SP_BADSELECT)

    メッセージ: PROCEDURE %s は指定されたコンテキストで結果セットを返すことができません

  • エラー: 1313 SQLSTATE: 42000 (ER_SP_BADRETURN)

    メッセージ: RETURN は FUNCTION でのみ許可されます

  • エラー: 1314 SQLSTATE: 0A000 (ER_SP_BADSTATEMENT)

    メッセージ: %s はストアドプロシージャーでは許可されません

  • エラー: 1315 SQLSTATE: 42000 (ER_UPDATE_LOG_DEPRECATED_IGNORED)

    メッセージ: 更新ログは非推奨となり、バイナリログに置き換えられました。SET SQL_LOG_UPDATE は無視されました。

  • エラー: 1316 SQLSTATE: 42000 (ER_UPDATE_LOG_DEPRECATED_TRANSLATED)

    メッセージ: 更新ログは非推奨となり、バイナリログに置き換えられました。SET SQL_LOG_UPDATE は SET SQL_LOG_BIN に変換されました。

  • エラー: 1317 SQLSTATE: 70100 (ER_QUERY_INTERRUPTED)

    メッセージ: クエリーの実行が中断されました

  • エラー: 1318 SQLSTATE: 42000 (ER_SP_WRONG_NO_OF_ARGS)

    メッセージ: %s %s の引数の数が不正です。%u 個を予期していましたが %u 個を受け取りました

  • エラー: 1319 SQLSTATE: 42000 (ER_SP_COND_MISMATCH)

    メッセージ: 未定義の CONDITION: %s

  • エラー: 1320 SQLSTATE: 42000 (ER_SP_NORETURN)

    メッセージ: FUNCTION %s の RETURN がありません

  • エラー: 1321 SQLSTATE: 2F005 (ER_SP_NORETURNEND)

    メッセージ: FUNCTION %s が RETURN を返さずに終了しました

  • エラー: 1322 SQLSTATE: 42000 (ER_SP_BAD_CURSOR_QUERY)

    メッセージ: カーソルステートメントは SELECT である必要があります

  • エラー: 1323 SQLSTATE: 42000 (ER_SP_BAD_CURSOR_SELECT)

    メッセージ: カーソル SELECT には INTO を指定できません

  • エラー: 1324 SQLSTATE: 42000 (ER_SP_CURSOR_MISMATCH)

    メッセージ: 未定義の CURSOR: %s

  • エラー: 1325 SQLSTATE: 24000 (ER_SP_CURSOR_ALREADY_OPEN)

    メッセージ: カーソルはすでにオープンされています

  • エラー: 1326 SQLSTATE: 24000 (ER_SP_CURSOR_NOT_OPEN)

    メッセージ: カーソルがオープンされていません

  • エラー: 1327 SQLSTATE: 42000 (ER_SP_UNDECLARED_VAR)

    メッセージ: 宣言されていない変数: %s

  • エラー: 1328 SQLSTATE: HY000 (ER_SP_WRONG_NO_OF_FETCH_ARGS)

    メッセージ: FETCH 変数の数が不正です

  • エラー: 1329 SQLSTATE: 02000 (ER_SP_FETCH_NO_DATA)

    メッセージ: データなし - ゼロ行がフェッチ、選択、または処理されました

  • エラー: 1330 SQLSTATE: 42000 (ER_SP_DUP_PARAM)

    メッセージ: 重複したパラメータ: %s

  • エラー: 1331 SQLSTATE: 42000 (ER_SP_DUP_VAR)

    メッセージ: 重複した変数: %s

  • エラー: 1332 SQLSTATE: 42000 (ER_SP_DUP_COND)

    メッセージ: 重複した条件: %s

  • エラー: 1333 SQLSTATE: 42000 (ER_SP_DUP_CURS)

    メッセージ: 重複したカーソル: %s

  • エラー: 1334 SQLSTATE: HY000 (ER_SP_CANT_ALTER)

    メッセージ: ALTER %s %s が失敗しました

  • エラー: 1335 SQLSTATE: 0A000 (ER_SP_SUBSELECT_NYI)

    メッセージ: サブクエリー値はサポートされていません

  • エラー: 1336 SQLSTATE: 0A000 (ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG)

    メッセージ: ストアドファンクションまたはトリガーでは %s は許可されません

  • エラー: 1337 SQLSTATE: 42000 (ER_SP_VARCOND_AFTER_CURSHNDLR)

    メッセージ: カーソルまたはハンドラの宣言のあとに変数または条件の宣言があります

  • エラー: 1338 SQLSTATE: 42000 (ER_SP_CURSOR_AFTER_HANDLER)

    メッセージ: ハンドラの宣言のあとにカーソルの宣言があります

  • エラー: 1339 SQLSTATE: 20000 (ER_SP_CASE_NOT_FOUND)

    メッセージ: CASE ステートメントにケースがありません

  • エラー: 1340 SQLSTATE: HY000 (ER_FPARSER_TOO_BIG_FILE)

    メッセージ: 構成ファイル '%s' は大きすぎます

  • エラー: 1341 SQLSTATE: HY000 (ER_FPARSER_BAD_HEADER)

    メッセージ: ファイル '%s' のファイルタイプヘッダーは誤った形式です

  • エラー: 1342 SQLSTATE: HY000 (ER_FPARSER_EOF_IN_COMMENT)

    メッセージ: コメント '%s' を解析中に予期せずファイルの終端に達しました

  • エラー: 1343 SQLSTATE: HY000 (ER_FPARSER_ERROR_IN_PARAMETER)

    メッセージ: パラメータ '%s' の解析中にエラーが発生しました (行: '%s')

  • エラー: 1344 SQLSTATE: HY000 (ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER)

    メッセージ: 不明なパラメータ '%s' をスキップしたときに、予期せずファイルの終端に達しました

  • エラー: 1345 SQLSTATE: HY000 (ER_VIEW_NO_EXPLAIN)

    メッセージ: EXPLAIN/SHOW を発行できません。ベースとなるテーブルに対するアクセス権がありません

  • エラー: 1346 SQLSTATE: HY000 (ER_FRM_UNKNOWN_TYPE)

    メッセージ: ファイル '%s' のヘッダーは不明なタイプ '%s' です

  • エラー: 1347 SQLSTATE: HY000 (ER_WRONG_OBJECT)

    メッセージ: '%s.%s' は %s ではありません

  • エラー: 1348 SQLSTATE: HY000 (ER_NONUPDATEABLE_COLUMN)

    メッセージ: カラム '%s' は更新できません

  • エラー: 1349 SQLSTATE: HY000 (ER_VIEW_SELECT_DERIVED)

    メッセージ: ビューの SELECT の FROM 句にサブクエリーが含まれています

  • エラー: 1350 SQLSTATE: HY000 (ER_VIEW_SELECT_CLAUSE)

    メッセージ: ビューの SELECT に '%s' 句が含まれています

  • エラー: 1351 SQLSTATE: HY000 (ER_VIEW_SELECT_VARIABLE)

    メッセージ: ビューの SELECT に変数またはパラメータが含まれています

  • エラー: 1352 SQLSTATE: HY000 (ER_VIEW_SELECT_TMPTABLE)

    メッセージ: ビューの SELECT が一時テーブル '%s' を参照しています

  • エラー: 1353 SQLSTATE: HY000 (ER_VIEW_WRONG_LIST)

    メッセージ: ビューの SELECT とビューのフィールドリストのカラム数が異なります

  • エラー: 1354 SQLSTATE: HY000 (ER_WARN_VIEW_MERGE)

    メッセージ: ビューのマージアルゴリズムはここでは使用できません (未定義のアルゴリズムと見なされました)

  • エラー: 1355 SQLSTATE: HY000 (ER_WARN_VIEW_WITHOUT_KEY)

    メッセージ: 更新しているビューには、ベースとなるテーブルの完全なキーがありません

  • エラー: 1356 SQLSTATE: HY000 (ER_VIEW_INVALID)

    メッセージ: ビュー '%s.%s' は、無効なテーブル、カラム、関数、または定義者を参照しています/ビューの呼び出し元にそれらを使用するアクセス権がありません

  • エラー: 1357 SQLSTATE: HY000 (ER_SP_NO_DROP_SP)

    メッセージ: 別のストアドルーチン内から %s をドロップまたは変更することはできません

  • エラー: 1358 SQLSTATE: HY000 (ER_SP_GOTO_IN_HNDLR)

    メッセージ: ストアドプロシージャーハンドラでは GOTO は許可されません

  • エラー: 1359 SQLSTATE: HY000 (ER_TRG_ALREADY_EXISTS)

    メッセージ: トリガーがすでに存在します

  • エラー: 1360 SQLSTATE: HY000 (ER_TRG_DOES_NOT_EXIST)

    メッセージ: トリガーが存在しません

  • エラー: 1361 SQLSTATE: HY000 (ER_TRG_ON_VIEW_OR_TEMP_TABLE)

    メッセージ: トリガーの '%s' はビューまたは一時テーブルです

  • エラー: 1362 SQLSTATE: HY000 (ER_TRG_CANT_CHANGE_ROW)

    メッセージ: %s 行の更新は %strigger では許可されません

  • エラー: 1363 SQLSTATE: HY000 (ER_TRG_NO_SUCH_ROW_IN_TRG)

    メッセージ: %s 行は %s トリガー内にありません

  • エラー: 1364 SQLSTATE: HY000 (ER_NO_DEFAULT_FOR_FIELD)

    メッセージ: フィールド '%s' にはデフォルト値がありません

  • エラー: 1365 SQLSTATE: 22012 (ER_DIVISION_BY_ZERO)

    メッセージ: ゼロによる除算

  • エラー: 1366 SQLSTATE: HY000 (ER_TRUNCATED_WRONG_VALUE_FOR_FIELD)

    メッセージ: 不正な %s 値: '%s' (カラム '%s' 行 %ld)

  • エラー: 1367 SQLSTATE: 22007 (ER_ILLEGAL_VALUE_FOR_TYPE)

    メッセージ: 解析中に不正な %s '%s' 値が見つかりました

  • エラー: 1368 SQLSTATE: HY000 (ER_VIEW_NONUPD_CHECK)

    メッセージ: 更新できないビュー '%s.%s' に CHECK OPTION があります

  • エラー: 1369 SQLSTATE: HY000 (ER_VIEW_CHECK_FAILED)

    メッセージ: CHECK OPTION が失敗しました '%s.%s'

  • エラー: 1370 SQLSTATE: 42000 (ER_PROCACCESS_DENIED_ERROR)

    メッセージ: %s コマンドがユーザー '%s'@'%s' (ルーチン '%s') を拒否しました

  • エラー: 1371 SQLSTATE: HY000 (ER_RELAY_LOG_FAIL)

    メッセージ: 古いリレーログのパージに失敗しました: %s

  • エラー: 1372 SQLSTATE: HY000 (ER_PASSWD_LENGTH)

    メッセージ: パスワードハッシュは %d 桁の 16 進数であるはずです

  • エラー: 1373 SQLSTATE: HY000 (ER_UNKNOWN_TARGET_BINLOG)

    メッセージ: Binlog インデックスでターゲットログが見つかりません

  • エラー: 1374 SQLSTATE: HY000 (ER_IO_ERR_LOG_INDEX_READ)

    メッセージ: ログインデックスファイルの読み取りで I/O エラーが発生しました

  • エラー: 1375 SQLSTATE: HY000 (ER_BINLOG_PURGE_PROHIBITED)

    メッセージ: サーバー構成によって Binlog のパージが許可されません

  • エラー: 1376 SQLSTATE: HY000 (ER_FSEEK_FAIL)

    メッセージ: fseek() に失敗しました

  • エラー: 1377 SQLSTATE: HY000 (ER_BINLOG_PURGE_FATAL_ERR)

    メッセージ: ログのパージ中に致命的なエラーが発生しました

  • エラー: 1378 SQLSTATE: HY000 (ER_LOG_IN_USE)

    メッセージ: パージ可能なファイルは使用されており、パージされません

  • エラー: 1379 SQLSTATE: HY000 (ER_LOG_PURGE_UNKNOWN_ERR)

    メッセージ: ログのパージ中に不明なエラーが発生しました

  • エラー: 1380 SQLSTATE: HY000 (ER_RELAY_LOG_INIT)

    メッセージ: リレーログの位置の初期化に失敗しました: %s

  • エラー: 1381 SQLSTATE: HY000 (ER_NO_BINARY_LOGGING)

    メッセージ: バイナリロギングを使用していません

  • エラー: 1382 SQLSTATE: HY000 (ER_RESERVED_SYNTAX)

    メッセージ: '%s' 構文は MySQL Server の内部で使用するために予約されています

  • エラー: 1383 SQLSTATE: HY000 (ER_WSAS_FAILED)

    メッセージ: WSAStartup が失敗しました

  • エラー: 1384 SQLSTATE: HY000 (ER_DIFF_GROUPS_PROC)

    メッセージ: 異なるグループのプロシージャーはまだ処理できません

  • エラー: 1385 SQLSTATE: HY000 (ER_NO_GROUP_FOR_PROC)

    メッセージ: このプロシージャーでは Select にグループがある必要があります

  • エラー: 1386 SQLSTATE: HY000 (ER_ORDER_WITH_PROC)

    メッセージ: このプロシージャーでは ORDER 句は使用できません

  • エラー: 1387 SQLSTATE: HY000 (ER_LOGGING_PROHIBIT_CHANGING_OF)

    メッセージ: バイナリロギングおよびレプリケーションによって、グローバルサーバー %s の変更が禁止されています

  • エラー: 1388 SQLSTATE: HY000 (ER_NO_FILE_MAPPING)

    メッセージ: ファイルをマップできません: %s、エラー番号: %d

  • エラー: 1389 SQLSTATE: HY000 (ER_WRONG_MAGIC)

    メッセージ: %s のマジックが間違っています

  • エラー: 1390 SQLSTATE: HY000 (ER_PS_MANY_PARAM)

    メッセージ: 準備済みステートメントにプレースホルダが多すぎます

  • エラー: 1391 SQLSTATE: HY000 (ER_KEY_PART_0)

    メッセージ: キーパート '%s' の長さは 0 にできません

  • エラー: 1392 SQLSTATE: HY000 (ER_VIEW_CHECKSUM)

    メッセージ: ビューテキストのチェックサムに失敗しました

  • エラー: 1393 SQLSTATE: HY000 (ER_VIEW_MULTIUPDATE)

    メッセージ: 結合ビュー '%s.%s' を使用して複数のベーステーブルを変更することはできません

  • エラー: 1394 SQLSTATE: HY000 (ER_VIEW_NO_INSERT_FIELD_LIST)

    メッセージ: フィールドリストを指定せずに結合ビュー '%s.%s' に挿入することはできません

  • エラー: 1395 SQLSTATE: HY000 (ER_VIEW_DELETE_MERGE_VIEW)

    メッセージ: 結合ビュー '%s.%s' から削除できません

  • エラー: 1396 SQLSTATE: HY000 (ER_CANNOT_USER)

    メッセージ: 操作 %s が %s で失敗しました

  • エラー: 1397 SQLSTATE: XAE04 (ER_XAER_NOTA)

    メッセージ: XAER_NOTA: 不明な XID

  • エラー: 1398 SQLSTATE: XAE05 (ER_XAER_INVAL)

    メッセージ: XAER_INVAL: 無効な引数 (またはサポートされていないコマンド)

  • エラー: 1399 SQLSTATE: XAE07 (ER_XAER_RMFAIL)

    メッセージ: XAER_RMFAIL: グローバルトランザクションが %s 状態のときは、コマンドを実行できません

  • エラー: 1400 SQLSTATE: XAE09 (ER_XAER_OUTSIDE)

    メッセージ: XAER_OUTSIDE: グローバルトランザクションの外部で一部の処理が行われました

  • エラー: 1401 SQLSTATE: XAE03 (ER_XAER_RMERR)

    メッセージ: XAER_RMERR: トランザクションブランチで致命的なエラーが発生しました - データの一貫性をチェックしてください

  • エラー: 1402 SQLSTATE: XA100 (ER_XA_RBROLLBACK)

    メッセージ: XA_RBROLLBACK: トランザクションブランチがロールバックされました

  • エラー: 1403 SQLSTATE: 42000 (ER_NONEXISTING_PROC_GRANT)

    メッセージ: ユーザー '%s' (ホスト '%s'、ルーチン '%s') にはそのような権限は定義されていません

  • エラー: 1404 SQLSTATE: HY000 (ER_PROC_AUTO_GRANT_FAIL)

    メッセージ: EXECUTE および ALTER ROUTINE 権限の付与に失敗しました

  • エラー: 1405 SQLSTATE: HY000 (ER_PROC_AUTO_REVOKE_FAIL)

    メッセージ: ドロップされたルーチンのすべての権限の取り消しに失敗しました

  • エラー: 1406 SQLSTATE: 22001 (ER_DATA_TOO_LONG)

    メッセージ: カラム '%s' 行 %ld のデータが長すぎます

  • エラー: 1407 SQLSTATE: 42000 (ER_SP_BAD_SQLSTATE)

    メッセージ: 不良な SQLSTATE: '%s'

  • エラー: 1408 SQLSTATE: HY000 (ER_STARTUP)

    メッセージ: %s: 接続準備完了。バージョン: '%s' ソケット: '%s' ポート: %d %s

  • エラー: 1409 SQLSTATE: HY000 (ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR)

    メッセージ: 固定長の行を持つファイルから変数に値をロードできません

  • エラー: 1410 SQLSTATE: 42000 (ER_CANT_CREATE_USER_WITH_GRANT)

    メッセージ: ユーザーを GRANT 付きで作成することは許可されていません

  • エラー: 1411 SQLSTATE: HY000 (ER_WRONG_VALUE_FOR_TYPE)

    メッセージ: 不正な %s 値: '%s' (関数 %s)

  • エラー: 1412 SQLSTATE: HY000 (ER_TABLE_DEF_CHANGED)

    メッセージ: テーブル定義が変更されました。トランザクションを再試行してください

  • エラー: 1413 SQLSTATE: 42000 (ER_SP_DUP_HANDLER)

    メッセージ: 同じブロックに重複したハンドラが宣言されています

  • エラー: 1414 SQLSTATE: 42000 (ER_SP_NOT_VAR_ARG)

    メッセージ: OUT または INOUT の引数 %d (ルーチン %s) は、BEFORE トリガーの変数または NEW 疑似変数ではありません

  • エラー: 1415 SQLSTATE: 0A000 (ER_SP_NO_RETSET)

    メッセージ: %s から結果セットを返すことは許可されません

  • エラー: 1416 SQLSTATE: 22003 (ER_CANT_CREATE_GEOMETRY_OBJECT)

    メッセージ: GEOMETRY フィールドに送信したデータから幾何オブジェクトを取得できません

  • エラー: 1417 SQLSTATE: HY000 (ER_FAILED_ROUTINE_BREAK_BINLOG)

    メッセージ: ルーチンが失敗し、NO SQL および READS SQL DATA のどちらも宣言されておらず、バイナリロギングが有効にされています。非トランザクションテーブルが更新された場合は、バイナリログにそれらの変更が書き込まれていません。

  • エラー: 1418 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_ROUTINE)

    メッセージ: この関数では、DETERMINISTIC、NO SQL、または READS SQL DATA のいずれも宣言されておらず、バイナリロギングが有効にされています (安全性の劣る log_bin_trust_function_creators 変数を使用することもできます)

  • エラー: 1419 SQLSTATE: HY000 (ER_BINLOG_CREATE_ROUTINE_NEED_SUPER)

    メッセージ: SUPER 権限がなく、バイナリロギングが有効にされています (安全性の劣る log_bin_trust_function_creators 変数を使用することもできます)

  • エラー: 1420 SQLSTATE: HY000 (ER_EXEC_STMT_WITH_OPEN_CURSOR)

    メッセージ: オープンカーソルが関連付けられている準備済みステートメントは実行できません。ステートメントをリセットして、再実行してください。

  • エラー: 1421 SQLSTATE: HY000 (ER_STMT_HAS_NO_OPEN_CURSOR)

    メッセージ: ステートメント (%lu) にはオープンカーソルがありません。

  • エラー: 1422 SQLSTATE: HY000 (ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG)

    メッセージ: ストアドファンクションまたはトリガーでは、明示的または暗黙的なコミットは許可されません。

  • エラー: 1423 SQLSTATE: HY000 (ER_NO_DEFAULT_FOR_VIEW_FIELD)

    メッセージ: ビュー '%s.%s' のベースとなるテーブルのフィールドにデフォルト値がありません

  • エラー: 1424 SQLSTATE: HY000 (ER_SP_NO_RECURSION)

    メッセージ: 再帰的なストアドファンクションおよびトリガーは許可されません。

  • エラー: 1425 SQLSTATE: 42000 (ER_TOO_BIG_SCALE)

    メッセージ: スケール %d (カラム '%s' に指定されました) は大きすぎます。最大は %lu です。

  • エラー: 1426 SQLSTATE: 42000 (ER_TOO_BIG_PRECISION)

    メッセージ: 精度 %d (カラム '%s' に指定されました) は大きすぎます。最大は %lu です。

  • エラー: 1427 SQLSTATE: 42000 (ER_M_BIGGER_THAN_D)

    メッセージ: float(M,D)、double(M,D)、または decimal(M,D) の場合、M は >= D である必要があります (カラム '%s')。

  • エラー: 1428 SQLSTATE: HY000 (ER_WRONG_LOCK_OF_SYSTEM_TABLE)

    メッセージ: システムテーブルの書き込みロックとその他のテーブルまたはロックタイプを組み合わせることはできません

  • エラー: 1429 SQLSTATE: HY000 (ER_CONNECT_TO_FOREIGN_DATA_SOURCE)

    メッセージ: 外部データソースに接続できません: %s

  • エラー: 1430 SQLSTATE: HY000 (ER_QUERY_ON_FOREIGN_DATA_SOURCE)

    メッセージ: 外部データソースに対するクエリーの処理に問題がありました。データソースエラー: %s

  • エラー: 1431 SQLSTATE: HY000 (ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST)

    メッセージ: 参照しようとしている外部データソースは存在しません。データソースエラー: %s

  • エラー: 1432 SQLSTATE: HY000 (ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE)

    メッセージ: FEDERATED テーブルを作成できません。データソース接続文字列 '%s' は正しい形式ではありません

  • エラー: 1433 SQLSTATE: HY000 (ER_FOREIGN_DATA_STRING_INVALID)

    メッセージ: データソース接続文字列 '%s' は正しい形式ではありません

  • エラー: 1434 SQLSTATE: HY000 (ER_CANT_CREATE_FEDERATED_TABLE)

    メッセージ: FEDERATED テーブルを作成できません。外部データソースエラー: %s

  • エラー: 1435 SQLSTATE: HY000 (ER_TRG_IN_WRONG_SCHEMA)

    メッセージ: 間違ったスキーマにトリガーがあります

  • エラー: 1436 SQLSTATE: HY000 (ER_STACK_OVERRUN_NEED_MORE)

    メッセージ: スレッドスタック不足です (使用: %ld ; サイズ: %ld ; 要求: %ld)。より大きい値で 'mysqld --thread_stack=#' の指定をしてください。

  • エラー: 1437 SQLSTATE: 42000 (ER_TOO_LONG_BODY)

    メッセージ: '%s' のルーチンの本体が長すぎます

  • エラー: 1438 SQLSTATE: HY000 (ER_WARN_CANT_DROP_DEFAULT_KEYCACHE)

    メッセージ: デフォルトのキーキャッシュはドロップできません

  • エラー: 1439 SQLSTATE: 42000 (ER_TOO_BIG_DISPLAYWIDTH)

    メッセージ: カラム '%s' の表示幅が範囲外です (最大 = %lu)

  • エラー: 1440 SQLSTATE: XAE08 (ER_XAER_DUPID)

    メッセージ: XAER_DUPID: XID はすでに存在します

  • エラー: 1441 SQLSTATE: 22008 (ER_DATETIME_FUNCTION_OVERFLOW)

    メッセージ: 日付時間関数: %s フィールドがオーバーフローしました

  • エラー: 1442 SQLSTATE: HY000 (ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG)

    メッセージ: ストアドファンクション/トリガーでテーブル '%s' を更新できません。このストアドファンクション/トリガーを呼び出したステートメントによってすでに使用されているためです。

  • エラー: 1443 SQLSTATE: HY000 (ER_VIEW_PREVENT_UPDATE)

    メッセージ: テーブル '%s' の定義が操作 %s (対象テーブル '%s') を妨げています。

  • エラー: 1444 SQLSTATE: HY000 (ER_PS_NO_RECURSION)

    メッセージ: 準備済みステートメントに、その同じステートメントを参照するストアドルーチンの呼び出しが含まれています。そのような再帰的な形式で準備済みステートメントを実行することはできません

  • エラー: 1445 SQLSTATE: HY000 (ER_SP_CANT_SET_AUTOCOMMIT)

    メッセージ: ストアドファンクションまたはトリガーから自動コミットを設定することはできません

  • エラー: 1446 SQLSTATE: HY000 (ER_MALFORMED_DEFINER)

    メッセージ: Definer が完全修飾されていません

  • エラー: 1447 SQLSTATE: HY000 (ER_VIEW_FRM_NO_USER)

    メッセージ: ビュー '%s'.'%s' に定義者情報がありません (古いテーブル形式)。現在のユーザーが定義者として使用されます。ビューを再作成してください。

  • エラー: 1448 SQLSTATE: HY000 (ER_VIEW_OTHER_USER)

    メッセージ: 定義者 '%s'@'%s' でビューを作成するには、SUPER 権限が必要となります

  • エラー: 1449 SQLSTATE: HY000 (ER_NO_SUCH_USER)

    メッセージ: 定義者 ('%s'@'%s') として指定されたユーザーは存在しません

  • エラー: 1450 SQLSTATE: HY000 (ER_FORBID_SCHEMA_CHANGE)

    メッセージ: スキーマを '%s' から '%s' に変更することは許可されません。

  • エラー: 1451 SQLSTATE: 23000 (ER_ROW_IS_REFERENCED_2)

    メッセージ: 親の行を削除または更新できません。外部キー制約に違反しています (%s)

  • エラー: 1452 SQLSTATE: 23000 (ER_NO_REFERENCED_ROW_2)

    メッセージ: 子の行を追加または更新できません。外部キー制約に違反しています (%s)

  • エラー: 1453 SQLSTATE: 42000 (ER_SP_BAD_VAR_SHADOW)

    メッセージ: 変数 '%s' は、`...` で囲むか、名前変更する必要があります。

  • エラー: 1454 SQLSTATE: HY000 (ER_TRG_NO_DEFINER)

    メッセージ: トリガー '%s'.'%s' に定義者属性がありません。トリガーは呼び出し元の権限に基づいてアクティブ化されます。呼び出し元の権限が不十分である可能性があります。トリガーを再作成してください。

  • エラー: 1455 SQLSTATE: HY000 (ER_OLD_FILE_FORMAT)

    メッセージ: '%s' は古い形式です。'%s' オブジェクトを再作成してください

  • エラー: 1456 SQLSTATE: HY000 (ER_SP_RECURSION_LIMIT)

    メッセージ: 再帰の制限 %d (max_sp_recursion_depth 変数で設定します) をルーチン %s が超えました

  • エラー: 1457 SQLSTATE: HY000 (ER_SP_PROC_TABLE_CORRUPT)

    メッセージ: ルーチン %s のロードに失敗しました。テーブル mysql.proc が、存在しないか、破損しているか、不良なデータが含まれています (内部コード %d)

  • エラー: 1458 SQLSTATE: 42000 (ER_SP_WRONG_NAME)

    メッセージ: 不正なルーチン名 '%s'

  • エラー: 1459 SQLSTATE: HY000 (ER_TABLE_NEEDS_UPGRADE)

    メッセージ: テーブルをアップグレードする必要があります。"REPAIR TABLE `%s`" を実行するか、ダンプ/リロードして修復してください。

  • エラー: 1460 SQLSTATE: 42000 (ER_SP_NO_AGGREGATE)

    メッセージ: AGGREGATE はストアドファンクションではサポートされません

  • エラー: 1461 SQLSTATE: 42000 (ER_MAX_PREPARED_STMT_COUNT_REACHED)

    メッセージ: max_prepared_stmt_count 個を超えるステートメントは作成できません (現在の値: %lu)

  • エラー: 1462 SQLSTATE: HY000 (ER_VIEW_RECURSIVE)

    メッセージ: `%s`.`%s` にはビューの再帰が含まれています

  • エラー: 1463 SQLSTATE: 42000 (ER_NON_GROUPING_FIELD_USED)

    メッセージ: グループフィールドではない '%s' が %s 句で使用されました

  • エラー: 1464 SQLSTATE: HY000 (ER_TABLE_CANT_HANDLE_SPKEYS)

    メッセージ: 使用されたテーブルタイプは SPATIAL インデックスをサポートしていません

  • エラー: 1465 SQLSTATE: HY000 (ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA)

    メッセージ: システムテーブルに対してトリガーは作成できません

  • エラー: 1466 SQLSTATE: HY000 (ER_REMOVED_SPACES)

    メッセージ: 名前 '%s' から先頭の空白文字が削除されました

  • エラー: 1467 SQLSTATE: HY000 (ER_AUTOINC_READ_FAILED)

    メッセージ: ストレージエンジンからの自動インクリメント値の読み取りに失敗しました

  • エラー: 1468 SQLSTATE: HY000 (ER_USERNAME)

    メッセージ: ユーザー名

  • エラー: 1469 SQLSTATE: HY000 (ER_HOSTNAME)

    メッセージ: ホスト名

  • エラー: 1470 SQLSTATE: HY000 (ER_WRONG_STRING_LENGTH)

    メッセージ: 文字列 '%s' は %s に対して長すぎます (%d より短くなるようにしてください)

  • エラー: 1471 SQLSTATE: HY000 (ER_NON_INSERTABLE_TABLE)

    メッセージ: 対象表 %s は挿入可能ではないので、%s を行えません。

  • エラー: 1472 SQLSTATE: HY000 (ER_ADMIN_WRONG_MRG_TABLE)

    メッセージ: テーブル '%s' の定義が異なるか、非 MyISAM タイプであるか、存在しません

  • エラー: 1473 SQLSTATE: HY000 (ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT)

    メッセージ: Select のネストが深すぎます

  • エラー: 1474 SQLSTATE: HY000 (ER_NAME_BECOMES_EMPTY)

    メッセージ: 名前 '%s' は '' になりました

  • エラー: 1475 SQLSTATE: HY000 (ER_AMBIGUOUS_FIELD_TERM)

    メッセージ: FIELDS TERMINATED 文字列の最初の文字があいまいです。オプションではなく、空ではない FIELDS ENCLOSED BY を使用してください

  • エラー: 1476 SQLSTATE: HY000 (ER_FOREIGN_SERVER_EXISTS)

    メッセージ: 作成しようとしている外部サーバー %s はすでに存在します。

  • エラー: 1477 SQLSTATE: HY000 (ER_FOREIGN_SERVER_DOESNT_EXIST)

    メッセージ: 参照しようとしている外部サーバー名はすでに存在しません。データソースエラー: %s

  • エラー: 1478 SQLSTATE: HY000 (ER_ILLEGAL_HA_CREATE_OPTION)

    メッセージ: テーブルのストレージエンジン '%s' は、作成オプション '%s' をサポートしていません

  • エラー: 1479 SQLSTATE: HY000 (ER_PARTITION_REQUIRES_VALUES_ERROR)

    メッセージ: 構文エラー: %s PARTITIONING では、各パーティションの VALUES %s の定義が必要となります

  • エラー: 1480 SQLSTATE: HY000 (ER_PARTITION_WRONG_VALUES_ERROR)

    メッセージ: %s PARTITIONING のみがパーティション定義に VALUES %s を使用できます

  • エラー: 1481 SQLSTATE: HY000 (ER_PARTITION_MAXVALUE_ERROR)

    メッセージ: MAXVALUE は最後のパーティション定義にのみ使用できます

  • エラー: 1482 SQLSTATE: HY000 (ER_PARTITION_SUBPARTITION_ERROR)

    メッセージ: サブパーティションは、キーを使用したハッシュパーティションとしてのみ作成できます

  • エラー: 1483 SQLSTATE: HY000 (ER_PARTITION_SUBPART_MIX_ERROR)

    メッセージ: 1 つのパーティション上にある場合は、すべてのパーティションにサブパーティションを定義する必要があります

  • エラー: 1484 SQLSTATE: HY000 (ER_PARTITION_WRONG_NO_PART_ERROR)

    メッセージ: 定義されたパーティションの数が間違っており、以前の設定と一致しません

  • エラー: 1485 SQLSTATE: HY000 (ER_PARTITION_WRONG_NO_SUBPART_ERROR)

    メッセージ: 定義されたサブパーティションの数が間違っており、以前の設定と一致しません

  • エラー: 1486 SQLSTATE: HY000 (ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR)

    メッセージ: (サブ) パーティショニング関数の定数、ランダム、またはタイムゾーンに依存した式は許可されません

  • エラー: 1487 SQLSTATE: HY000 (ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR)

    メッセージ: RANGE/LIST VALUES の式は定数である必要があります

  • エラー: 1488 SQLSTATE: HY000 (ER_FIELD_NOT_FOUND_PART_ERROR)

    メッセージ: パーティション関数のフィールドリストのフィールドがテーブルにありません

  • エラー: 1489 SQLSTATE: HY000 (ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR)

    メッセージ: フィールドリストは KEY パーティションでのみ許可されます

  • エラー: 1490 SQLSTATE: HY000 (ER_INCONSISTENT_PARTITION_INFO_ERROR)

    メッセージ: frm ファイル内のパーティション情報が、その frm ファイルに書き込まれる可能性がある情報と整合性がありません

  • エラー: 1491 SQLSTATE: HY000 (ER_PARTITION_FUNC_NOT_ALLOWED_ERROR)

    メッセージ: %s 関数が間違った型を返しました

  • エラー: 1492 SQLSTATE: HY000 (ER_PARTITIONS_MUST_BE_DEFINED_ERROR)

    メッセージ: %s パーティションの各パーティションを定義する必要があります

  • エラー: 1493 SQLSTATE: HY000 (ER_RANGE_NOT_INCREASING_ERROR)

    メッセージ: VALUES LESS THAN 値は、各パーティションで厳密に増加している必要があります

  • エラー: 1494 SQLSTATE: HY000 (ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR)

    メッセージ: VALUES 値は、パーティション関数と同じ型である必要があります

  • エラー: 1495 SQLSTATE: HY000 (ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR)

    メッセージ: リストパーティショニングに同じ定数の定義が複数あります

  • エラー: 1496 SQLSTATE: HY000 (ER_PARTITION_ENTRY_ERROR)

    メッセージ: パーティショニングは、クエリー内でスタンドアロンで使用できません

  • エラー: 1497 SQLSTATE: HY000 (ER_MIX_HANDLER_ERROR)

    メッセージ: パーティション内でのハンドラの混在は、このバージョンの MySQL では許可されません

  • エラー: 1498 SQLSTATE: HY000 (ER_PARTITION_NOT_DEFINED_ERROR)

    メッセージ: パーティション化されたエンジンの場合は、すべての %s を定義する必要があります

  • エラー: 1499 SQLSTATE: HY000 (ER_TOO_MANY_PARTITIONS_ERROR)

    メッセージ: 定義されているパーティション (サブパーティションを含む) が多すぎます

  • エラー: 1500 SQLSTATE: HY000 (ER_SUBPARTITION_ERROR)

    メッセージ: サブパーティショニングの場合は、RANGE/LIST パーティショニングと HASH/KEY パーティショニングの混在のみが可能です

  • エラー: 1501 SQLSTATE: HY000 (ER_CANT_CREATE_HANDLER_FILE)

    メッセージ: 特定のハンドラファイルの作成に失敗しました

  • エラー: 1502 SQLSTATE: HY000 (ER_BLOB_FIELD_IN_PART_FUNC_ERROR)

    メッセージ: BLOB フィールドはパーティション関数では許可されません

  • エラー: 1503 SQLSTATE: HY000 (ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF)

    メッセージ: %s はテーブルのパーティショニング関数にすべてのカラムを含める必要があります

  • エラー: 1504 SQLSTATE: HY000 (ER_NO_PARTS_ERROR)

    メッセージ: %s の数 = 0 は許可される値ではありません

  • エラー: 1505 SQLSTATE: HY000 (ER_PARTITION_MGMT_ON_NONPARTITIONED)

    メッセージ: パーティション化されていないテーブルでパーティション管理を行うことはできません

  • エラー: 1506 SQLSTATE: HY000 (ER_FOREIGN_KEY_ON_PARTITIONED)

    メッセージ: 外部キー句をパーティショニングと一緒に使用することはまだサポートされていません

  • エラー: 1507 SQLSTATE: HY000 (ER_DROP_PARTITION_NON_EXISTENT)

    メッセージ: %s のパーティションリストにエラーがあります

  • エラー: 1508 SQLSTATE: HY000 (ER_DROP_LAST_PARTITION)

    メッセージ: すべてのパーティションを削除することはできません。代わりに DROP TABLE を使用してください

  • エラー: 1509 SQLSTATE: HY000 (ER_COALESCE_ONLY_ON_HASH_PARTITION)

    メッセージ: COALESCE PARTITION は HASH/KEY パーティションでのみ使用できます

  • エラー: 1510 SQLSTATE: HY000 (ER_REORG_HASH_ONLY_ON_SAME_NO)

    メッセージ: REORGANIZE PARTITION は、番号が変更されないようにパーティションを再編成するためにのみ使用できます

  • エラー: 1511 SQLSTATE: HY000 (ER_REORG_NO_PARAM_ERROR)

    メッセージ: パラメータを指定しない REORGANIZE PARTITION は、HASH PARTITION を使用して自動的にパーティション化されたテーブルに対してのみ使用できます

  • エラー: 1512 SQLSTATE: HY000 (ER_ONLY_ON_RANGE_LIST_PARTITION)

    メッセージ: %s PARTITION は RANGE/LIST パーティションに対してのみ使用できます

  • エラー: 1513 SQLSTATE: HY000 (ER_ADD_PARTITION_SUBPART_ERROR)

    メッセージ: 間違ったサブパーティション番号を使用してパーティションを追加しようとしています

  • エラー: 1514 SQLSTATE: HY000 (ER_ADD_PARTITION_NO_NEW_PARTITION)

    メッセージ: 少なくとも 1 つのパーティションを追加する必要があります

  • エラー: 1515 SQLSTATE: HY000 (ER_COALESCE_PARTITION_NO_PARTITION)

    メッセージ: 少なくとも 1 つのパーティションを合体する必要があります

  • エラー: 1516 SQLSTATE: HY000 (ER_REORG_PARTITION_NOT_EXIST)

    メッセージ: 実際のパーティション数より多いパーティションを再編成しようとしています

  • エラー: 1517 SQLSTATE: HY000 (ER_SAME_NAME_PARTITION)

    メッセージ: 重複したパーティション名 %s

  • エラー: 1518 SQLSTATE: HY000 (ER_NO_BINLOG_ERROR)

    メッセージ: このコマンドで Binlog を停止することは許可されません

  • エラー: 1519 SQLSTATE: HY000 (ER_CONSECUTIVE_REORG_PARTITIONS)

    メッセージ: 一連のパーティションを再編成する場合、それらは連続した順序である必要があります

  • エラー: 1520 SQLSTATE: HY000 (ER_REORG_OUTSIDE_RANGE)

    メッセージ: 範囲パーティションの再編成では、範囲を拡張できる最後のパーティションを除いて、合計の範囲は変更できません

  • エラー: 1521 SQLSTATE: HY000 (ER_PARTITION_FUNCTION_FAILURE)

    メッセージ: パーティション関数は、このバージョンではこのハンドラに対してサポートされません

  • エラー: 1522 SQLSTATE: HY000 (ER_PART_STATE_ERROR)

    メッセージ: パーティションの状態は CREATE/ALTER TABLE から定義できません

  • エラー: 1523 SQLSTATE: HY000 (ER_LIMITED_PART_RANGE)

    メッセージ: %s ハンドラは、VALUES で 32 ビットの整数のみをサポートしています

  • エラー: 1524 SQLSTATE: HY000 (ER_PLUGIN_IS_NOT_LOADED)

    メッセージ: プラグイン '%s' はロードされません

  • エラー: 1525 SQLSTATE: HY000 (ER_WRONG_VALUE)

    メッセージ: 不正な %s 値: '%s'

  • エラー: 1526 SQLSTATE: HY000 (ER_NO_PARTITION_FOR_GIVEN_VALUE)

    メッセージ: テーブルには値 %s のパーティションがありません

  • エラー: 1527 SQLSTATE: HY000 (ER_FILEGROUP_OPTION_ONLY_ONCE)

    メッセージ: %s を複数回指定することは許可されません

  • エラー: 1528 SQLSTATE: HY000 (ER_CREATE_FILEGROUP_FAILED)

    メッセージ: %s の作成に失敗しました

  • エラー: 1529 SQLSTATE: HY000 (ER_DROP_FILEGROUP_FAILED)

    メッセージ: %s のドロップに失敗しました

  • エラー: 1530 SQLSTATE: HY000 (ER_TABLESPACE_AUTO_EXTEND_ERROR)

    メッセージ: ハンドラはテーブルスペースの自動拡張をサポートしていません

  • エラー: 1531 SQLSTATE: HY000 (ER_WRONG_SIZE_NUMBER)

    メッセージ: サイズパラメータが不正に指定されました (数値または 10M という形式)

  • エラー: 1532 SQLSTATE: HY000 (ER_SIZE_OVERFLOW_ERROR)

    メッセージ: サイズの数値は正しい形式ですが、数字部分が 20 億を超えることは許可されません

  • エラー: 1533 SQLSTATE: HY000 (ER_ALTER_FILEGROUP_FAILED)

    メッセージ: 変更に失敗しました: %s

  • エラー: 1534 SQLSTATE: HY000 (ER_BINLOG_ROW_LOGGING_FAILED)

    メッセージ: 行ベースのバイナリログへの 1 行の書き込みが失敗しました

  • エラー: 1535 SQLSTATE: HY000 (ER_BINLOG_ROW_WRONG_TABLE_DEF)

    メッセージ: マスターとスレーブのテーブル定義が一致しません: %s

  • エラー: 1536 SQLSTATE: HY000 (ER_BINLOG_ROW_RBR_TO_SBR)

    メッセージ: --log-slave-updates を指定して実行されているスレーブは、行べースのバイナリログイベントをレプリケートできるように、行ベースのバイナリロギングを使用する必要があります

  • エラー: 1537 SQLSTATE: HY000 (ER_EVENT_ALREADY_EXISTS)

    メッセージ: イベント '%s' はすでに存在します

  • エラー: 1538 SQLSTATE: HY000 (ER_EVENT_STORE_FAILED)

    メッセージ: イベント %s の格納に失敗しました。ストレージエンジンからエラーコード %d が返されました。

  • エラー: 1539 SQLSTATE: HY000 (ER_EVENT_DOES_NOT_EXIST)

    メッセージ: 不明なイベント '%s'

  • エラー: 1540 SQLSTATE: HY000 (ER_EVENT_CANT_ALTER)

    メッセージ: イベント '%s' の変更に失敗しました

  • エラー: 1541 SQLSTATE: HY000 (ER_EVENT_DROP_FAILED)

    メッセージ: %s のドロップに失敗しました

  • エラー: 1542 SQLSTATE: HY000 (ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG)

    メッセージ: INTERVAL が正数ではないか、大きすぎます

  • エラー: 1543 SQLSTATE: HY000 (ER_EVENT_ENDS_BEFORE_STARTS)

    メッセージ: ENDS が無効であるか、STARTS の前にあります

  • エラー: 1544 SQLSTATE: HY000 (ER_EVENT_EXEC_TIME_IN_THE_PAST)

    メッセージ: イベントの実行時間が過去になっています。イベントが無効にされました

  • エラー: 1545 SQLSTATE: HY000 (ER_EVENT_OPEN_TABLE_FAILED)

    メッセージ: mysql.event のオープンに失敗しました

  • エラー: 1546 SQLSTATE: HY000 (ER_EVENT_NEITHER_M_EXPR_NOR_M_AT)

    メッセージ: 日付時間式が指定されていません

  • エラー: 1547 SQLSTATE: HY000 (ER_OBSOLETE_COL_COUNT_DOESNT_MATCH_CORRUPTED)

    メッセージ: mysql.%s のカラム数が間違っています。%d 個を予期しましたが、%d 個が見つかりました。テーブルが破損している可能性があります

  • エラー: 1548 SQLSTATE: HY000 (ER_OBSOLETE_CANNOT_LOAD_FROM_TABLE)

    メッセージ: mysql.%s からロードできません。テーブルが破損している可能性があります

  • エラー: 1549 SQLSTATE: HY000 (ER_EVENT_CANNOT_DELETE)

    メッセージ: mysql.event からのイベントの削除に失敗しました

  • エラー: 1550 SQLSTATE: HY000 (ER_EVENT_COMPILE_ERROR)

    メッセージ: イベントの本体のコンパイル中にエラーが発生しました

  • エラー: 1551 SQLSTATE: HY000 (ER_EVENT_SAME_NAME)

    メッセージ: 古いイベント名と新しいイベント名が同じです

  • エラー: 1552 SQLSTATE: HY000 (ER_EVENT_DATA_TOO_LONG)

    メッセージ: カラム '%s' のデータが大きすぎます

  • エラー: 1553 SQLSTATE: HY000 (ER_DROP_INDEX_FK)

    メッセージ: インデックス '%s' をドロップできません。外部キー制約で必要とされています

  • エラー: 1554 SQLSTATE: HY000 (ER_WARN_DEPRECATED_SYNTAX_WITH_VER)

    メッセージ: 構文 '%s' は非推奨となり、MySQL %s で削除されます。代わりに %s を使用してください

  • エラー: 1555 SQLSTATE: HY000 (ER_CANT_WRITE_LOCK_LOG_TABLE)

    メッセージ: ログテーブルを書き込みロックすることはできません。読み取りアクセスのみを行うことができます

  • エラー: 1556 SQLSTATE: HY000 (ER_CANT_LOCK_LOG_TABLE)

    メッセージ: ログテーブルに対してロックは使用できません。

  • エラー: 1557 SQLSTATE: 23000 (ER_FOREIGN_DUPLICATE_KEY)

    メッセージ: テーブル '%s'、エントリ '%s'、キー %d の外部キー制約を維持すると、重複したエントリが発生する可能性があります

    ER_FOREIGN_DUPLICATE_KEY は 5.6.3 で削除されました。

    5.6.4 で、ER_FOREIGN_DUPLICATE_KEYER_FOREIGN_DUPLICATE_KEY_OLD_UNUSED に名前変更されました。

  • エラー: 1557 SQLSTATE: 23000 (ER_FOREIGN_DUPLICATE_KEY_OLD_UNUSED)

    メッセージ: テーブル '%s'、エントリ '%s'、キー %d の外部キー制約を維持すると、重複したエントリが発生する可能性があります

    ER_FOREIGN_DUPLICATE_KEY_OLD_UNUSED は 5.6.4 で導入されました。

    5.6.4 で、ER_FOREIGN_DUPLICATE_KEYER_FOREIGN_DUPLICATE_KEY_OLD_UNUSED に名前変更されました。

  • エラー: 1558 SQLSTATE: HY000 (ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE)

    メッセージ: mysql.%s のカラム数が間違っています。%d 個を予期しましたが、%d 個が見つかりました。MySQL %d で作成され、現在は %d を実行しています。mysql_upgrade を使用して、このエラーを修正してください。

  • エラー: 1559 SQLSTATE: HY000 (ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR)

    メッセージ: セッションが一時テーブルをオープンしているときに、行ベースのバイナリログ形式を切り替えることはできません

  • エラー: 1560 SQLSTATE: HY000 (ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT)

    メッセージ: ストアドファンクションまたはトリガー内ではバイナリロギング形式は変更できません

  • エラー: 1561 SQLSTATE: HY000 (ER_NDB_CANT_SWITCH_BINLOG_FORMAT)

    メッセージ: NDB クラスタエンジンは、実行中の Binlog 形式の変更をまだサポートしていません

  • エラー: 1562 SQLSTATE: HY000 (ER_PARTITION_NO_TEMPORARY)

    メッセージ: パーティションを持つ一時テーブルは作成できません

  • エラー: 1563 SQLSTATE: HY000 (ER_PARTITION_CONST_DOMAIN_ERROR)

    メッセージ: パーティション定数がパーティション関数ドメインの範囲外にあります

  • エラー: 1564 SQLSTATE: HY000 (ER_PARTITION_FUNCTION_IS_NOT_ALLOWED)

    メッセージ: このパーティション関数は許可されません

  • エラー: 1565 SQLSTATE: HY000 (ER_DDL_LOG_ERROR)

    メッセージ: DDL ログにエラーがあります

  • エラー: 1566 SQLSTATE: HY000 (ER_NULL_IN_VALUES_LESS_THAN)

    メッセージ: VALUES LESS THAN に NULL 値を使用することは許可されません

  • エラー: 1567 SQLSTATE: HY000 (ER_WRONG_PARTITION_NAME)

    メッセージ: 不正なパーティション名

  • エラー: 1568 SQLSTATE: 25001 (ER_CANT_CHANGE_TX_ISOLATION)

    メッセージ: トランザクションの進行中に、トランザクションの分離レベルは変更できません

    ER_CANT_CHANGE_TX_ISOLATION は 5.6.4 で削除されました。

    5.6.5 で、ER_CANT_CHANGE_TX_ISOLATIONER_CANT_CHANGE_TX_CHARACTERISTICS に名前変更されました。

  • エラー: 1568 SQLSTATE: 25001 (ER_CANT_CHANGE_TX_CHARACTERISTICS)

    メッセージ: トランザクションの進行中に、トランザクションの特性は変更できません

    ER_CANT_CHANGE_TX_CHARACTERISTICS は 5.6.5 で導入されました。

    5.6.5 で、ER_CANT_CHANGE_TX_ISOLATIONER_CANT_CHANGE_TX_CHARACTERISTICS に名前変更されました。

  • エラー: 1569 SQLSTATE: HY000 (ER_DUP_ENTRY_AUTOINCREMENT_CASE)

    メッセージ: ALTER TABLE によって auto_increment が初期化され、重複したエントリ '%s' がキー '%s' に作成されました

  • エラー: 1570 SQLSTATE: HY000 (ER_EVENT_MODIFY_QUEUE_ERROR)

    メッセージ: 内部スケジューラエラー %d

  • エラー: 1571 SQLSTATE: HY000 (ER_EVENT_SET_VAR_ERROR)

    メッセージ: スケジューラの開始中/停止中にエラーが発生しました。エラーコード %u

  • エラー: 1572 SQLSTATE: HY000 (ER_PARTITION_MERGE_ERROR)

    メッセージ: パーティション化されたテーブルではエンジンは使用できません

  • エラー: 1573 SQLSTATE: HY000 (ER_CANT_ACTIVATE_LOG)

    メッセージ: '%s' ログをアクティブ化できません

  • エラー: 1574 SQLSTATE: HY000 (ER_RBR_NOT_AVAILABLE)

    メッセージ: サーバーは行ベースのレプリケーションで構築されていません

  • エラー: 1575 SQLSTATE: HY000 (ER_BASE64_DECODE_ERROR)

    メッセージ: Base64 文字列のデコードに失敗しました

  • エラー: 1576 SQLSTATE: HY000 (ER_EVENT_RECURSION_FORBIDDEN)

    メッセージ: 本体が存在する場合、EVENT DDL ステートメントの再帰は禁止されています

  • エラー: 1577 SQLSTATE: HY000 (ER_EVENTS_DB_ERROR)

    メッセージ: サーバー起動時に、イベントスケジューラによって使用されるシステムテーブルの損傷が見つかったため、続行できません

  • エラー: 1578 SQLSTATE: HY000 (ER_ONLY_INTEGERS_ALLOWED)

    メッセージ: ここでは整数のみが数値として許可されます

  • エラー: 1579 SQLSTATE: HY000 (ER_UNSUPORTED_LOG_ENGINE)

    メッセージ: このストレージエンジンはログテーブル " には使用できません

  • エラー: 1580 SQLSTATE: HY000 (ER_BAD_LOG_STATEMENT)

    メッセージ: ロギングが有効にされている場合は、ログテーブルを '%s' できません

  • エラー: 1581 SQLSTATE: HY000 (ER_CANT_RENAME_LOG_TABLE)

    メッセージ: '%s' を名前変更できません。ロギングが有効にされている場合、ログテーブルの名前変更では 2 つのテーブルを名前変更する必要があります。ログテーブルをアーカイブテーブルに名前変更し、別のテーブルを '%s' に戻します

  • エラー: 1582 SQLSTATE: 42000 (ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT)

    メッセージ: ネイティブ関数 '%s' の呼び出しのパラメータ数が不正です

  • エラー: 1583 SQLSTATE: 42000 (ER_WRONG_PARAMETERS_TO_NATIVE_FCT)

    メッセージ: ネイティブ関数 '%s' の呼び出しのパラメータが不正です

  • エラー: 1584 SQLSTATE: 42000 (ER_WRONG_PARAMETERS_TO_STORED_FCT)

    メッセージ: ストアドファンクション '%s' の呼び出しのパラメータが不正です

  • エラー: 1585 SQLSTATE: HY000 (ER_NATIVE_FCT_NAME_COLLISION)

    メッセージ: この関数 '%s' はネイティブ関数と同じ名前です

  • エラー: 1586 SQLSTATE: 23000 (ER_DUP_ENTRY_WITH_KEY_NAME)

    メッセージ: '%s' はキー '%s' で重複しています。

    このエラーの書式文字列は、ER_DUP_ENTRY でも使用されます。

  • エラー: 1587 SQLSTATE: HY000 (ER_BINLOG_PURGE_EMFILE)

    メッセージ: オープンしているファイルが多すぎます。コマンドを再実行してください

  • エラー: 1588 SQLSTATE: HY000 (ER_EVENT_CANNOT_CREATE_IN_THE_PAST)

    メッセージ: イベント実行時間が過去であり、ON COMPLETION NOT PRESERVE が設定されています。イベントは作成後すぐにドロップされました。

  • エラー: 1589 SQLSTATE: HY000 (ER_EVENT_CANNOT_ALTER_IN_THE_PAST)

    メッセージ: イベント実行時間が過去であり、ON COMPLETION NOT PRESERVE が設定されています。イベントは変更されませんでした。現在より先の時間を指定してください。

  • エラー: 1590 SQLSTATE: HY000 (ER_SLAVE_INCIDENT)

    メッセージ: インシデント %s がマスターで発生しました。メッセージ: %s

  • エラー: 1591 SQLSTATE: HY000 (ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT)

    メッセージ: いくつかの既存の値のパーティションがテーブルにありません

  • エラー: 1592 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_STATEMENT)

    メッセージ: BINLOG_FORMAT = STATEMENT のときに、ステートメント形式を使用して安全ではないステートメントがバイナリログに書き込まれました。%s

  • エラー: 1593 SQLSTATE: HY000 (ER_SLAVE_FATAL_ERROR)

    メッセージ: 致命的なエラー: %s

  • エラー: 1594 SQLSTATE: HY000 (ER_SLAVE_RELAY_LOG_READ_FAILURE)

    メッセージ: リレーログの読み取りの失敗: %s

  • エラー: 1595 SQLSTATE: HY000 (ER_SLAVE_RELAY_LOG_WRITE_FAILURE)

    メッセージ: リレーログの書き込みの失敗: %s

  • エラー: 1596 SQLSTATE: HY000 (ER_SLAVE_CREATE_EVENT_FAILURE)

    メッセージ: %s の作成に失敗しました

  • エラー: 1597 SQLSTATE: HY000 (ER_SLAVE_MASTER_COM_FAILURE)

    メッセージ: マスターのコマンド %s が失敗しました: %s

  • エラー: 1598 SQLSTATE: HY000 (ER_BINLOG_LOGGING_IMPOSSIBLE)

    メッセージ: バイナリロギングを行うことができません。メッセージ: %s

  • エラー: 1599 SQLSTATE: HY000 (ER_VIEW_NO_CREATION_CTX)

    メッセージ: ビュー `%s`.`%s` には作成コンテキストがありません

  • エラー: 1600 SQLSTATE: HY000 (ER_VIEW_INVALID_CREATION_CTX)

    メッセージ: ビュー `%s`.`%s' の作成コンテキストが無効です

  • エラー: 1601 SQLSTATE: HY000 (ER_SR_INVALID_CREATION_CTX)

    メッセージ: ストアドルーチン `%s`.`%s` の作成コンテキストが無効です

  • エラー: 1602 SQLSTATE: HY000 (ER_TRG_CORRUPTED_FILE)

    メッセージ: テーブル `%s`.`%s` の TRG ファイルが破損しています

  • エラー: 1603 SQLSTATE: HY000 (ER_TRG_NO_CREATION_CTX)

    メッセージ: テーブル `%s`.`%s` のトリガーに作成コンテキストがありません

  • エラー: 1604 SQLSTATE: HY000 (ER_TRG_INVALID_CREATION_CTX)

    メッセージ: テーブル `%s`.`%s` のトリガーの作成コンテキストが無効です

  • エラー: 1605 SQLSTATE: HY000 (ER_EVENT_INVALID_CREATION_CTX)

    メッセージ: イベント `%s`.`%s` の作成コンテキストが無効です

  • エラー: 1606 SQLSTATE: HY000 (ER_TRG_CANT_OPEN_TABLE)

    メッセージ: トリガー `%s`.`%s` のテーブルをオープンできません

  • エラー: 1607 SQLSTATE: HY000 (ER_CANT_CREATE_SROUTINE)

    メッセージ: ストアドルーチン `%s` を作成できません。警告をチェックしてください

  • エラー: 1608 SQLSTATE: HY000 (ER_NEVER_USED)

    メッセージ: スレーブモードの組み合わせがあいまいです。%s

  • エラー: 1609 SQLSTATE: HY000 (ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT)

    メッセージ: タイプ `%s` の BINLOG ステートメントの前に、形式を記述する BINLOG ステートメントがありませんでした。

  • エラー: 1610 SQLSTATE: HY000 (ER_SLAVE_CORRUPT_EVENT)

    メッセージ: 不正なレプリケーションイベントが検出されました

  • エラー: 1611 SQLSTATE: HY000 (ER_LOAD_DATA_INVALID_COLUMN)

    メッセージ: LOAD DATA に無効なカラム参照 (%s) があります

  • エラー: 1612 SQLSTATE: HY000 (ER_LOG_PURGE_NO_FILE)

    メッセージ: パージするログ %s が見つかりませんでした

  • エラー: 1613 SQLSTATE: XA106 (ER_XA_RBTIMEOUT)

    メッセージ: XA_RBTIMEOUT: トランザクションブランチがロールバックされました: 時間がかかりすぎました

  • エラー: 1614 SQLSTATE: XA102 (ER_XA_RBDEADLOCK)

    メッセージ: XA_RBDEADLOCK: トランザクションブランチがロールバックされました: デッドロックが検出されました

  • エラー: 1615 SQLSTATE: HY000 (ER_NEED_REPREPARE)

    メッセージ: 準備済みステートメントを再度準備する必要があります

  • エラー: 1616 SQLSTATE: HY000 (ER_DELAYED_NOT_SUPPORTED)

    メッセージ: DELAYED オプションはテーブル '%s' ではサポートされません

  • エラー: 1617 SQLSTATE: HY000 (WARN_NO_MASTER_INFO)

    メッセージ: マスター情報構造体が存在しません

  • エラー: 1618 SQLSTATE: HY000 (WARN_OPTION_IGNORED)

    メッセージ: <%s> オプションは無視されました

  • エラー: 1619 SQLSTATE: HY000 (WARN_PLUGIN_DELETE_BUILTIN)

    メッセージ: 組み込みプラグインは削除できません

  • エラー: 1620 SQLSTATE: HY000 (WARN_PLUGIN_BUSY)

    メッセージ: プラグインがビジー状態であり、シャットダウン時にアンインストールされます

  • エラー: 1621 SQLSTATE: HY000 (ER_VARIABLE_IS_READONLY)

    メッセージ: %s 変数 '%s' は読み取り専用です。SET %s を使用して、値を割り当ててください

  • エラー: 1622 SQLSTATE: HY000 (ER_WARN_ENGINE_TRANSACTION_ROLLBACK)

    メッセージ: ストレージエンジン %s は、このステートメントのロールバックをサポートしていません。トランザクションがロールバックされたため、再度開始する必要があります

  • エラー: 1623 SQLSTATE: HY000 (ER_SLAVE_HEARTBEAT_FAILURE)

    メッセージ: 予期しないマスターのハードビートデータ: %s

  • エラー: 1624 SQLSTATE: HY000 (ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE)

    メッセージ: ハートビート間隔に要求された値は、負数であるか、許容される最大値を超えています (%s 秒)。

  • エラー: 1625 SQLSTATE: HY000 (ER_NDB_REPLICATION_SCHEMA_ERROR)

    メッセージ: mysql.ndb_replication テーブルのスキーマが不良です。メッセージ: %s

  • エラー: 1626 SQLSTATE: HY000 (ER_CONFLICT_FN_PARSE_ERROR)

    メッセージ: 競合関数の解析でエラーが発生しました。メッセージ: %s

  • エラー: 1627 SQLSTATE: HY000 (ER_EXCEPTIONS_WRITE_ERROR)

    メッセージ: 例外テーブルへの書き込みが失敗しました。メッセージ: %s"

  • エラー: 1628 SQLSTATE: HY000 (ER_TOO_LONG_TABLE_COMMENT)

    メッセージ: テーブル '%s' のコメントが長すぎます (最大 = %lu)

  • エラー: 1629 SQLSTATE: HY000 (ER_TOO_LONG_FIELD_COMMENT)

    メッセージ: フィールド '%s' のコメントが長すぎます (最大 = %lu)

  • エラー: 1630 SQLSTATE: 42000 (ER_FUNC_INEXISTENT_NAME_COLLISION)

    メッセージ: FUNCTION %s は存在しません。リファレンスマニュアルの「関数名の構文解析と解決」セクションを確認してください

  • エラー: 1631 SQLSTATE: HY000 (ER_DATABASE_NAME)

    メッセージ: データベース

  • エラー: 1632 SQLSTATE: HY000 (ER_TABLE_NAME)

    メッセージ: テーブル

  • エラー: 1633 SQLSTATE: HY000 (ER_PARTITION_NAME)

    メッセージ: パーティション

  • エラー: 1634 SQLSTATE: HY000 (ER_SUBPARTITION_NAME)

    メッセージ: サブパーティション

  • エラー: 1635 SQLSTATE: HY000 (ER_TEMPORARY_NAME)

    メッセージ: 一時的

  • エラー: 1636 SQLSTATE: HY000 (ER_RENAMED_NAME)

    メッセージ: 名前変更済み

  • エラー: 1637 SQLSTATE: HY000 (ER_TOO_MANY_CONCURRENT_TRXS)

    メッセージ: アクティブな並列トランザクションが多すぎます

  • エラー: 1638 SQLSTATE: HY000 (WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED)

    メッセージ: 非 ASCII 区切り文字引数は完全にサポートされていません

  • エラー: 1639 SQLSTATE: HY000 (ER_DEBUG_SYNC_TIMEOUT)

    メッセージ: デバッグ同期ポイントの待機がタイムアウトしました

  • エラー: 1640 SQLSTATE: HY000 (ER_DEBUG_SYNC_HIT_LIMIT)

    メッセージ: デバッグ同期ポイントの制限に達しました

  • エラー: 1641 SQLSTATE: 42000 (ER_DUP_SIGNAL_SET)

    メッセージ: 重複した条件情報項目 '%s'

  • エラー: 1642 SQLSTATE: 01000 (ER_SIGNAL_WARN)

    メッセージ: ユーザー定義の警告条件の処理がありません

  • エラー: 1643 SQLSTATE: 02000 (ER_SIGNAL_NOT_FOUND)

    メッセージ: ユーザー定義の Not Found 条件の処理がありません

  • エラー: 1644 SQLSTATE: HY000 (ER_SIGNAL_EXCEPTION)

    メッセージ: ユーザー定義の例外条件の処理がありません

  • エラー: 1645 SQLSTATE: 0K000 (ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER)

    メッセージ: ハンドラがアクティブではないときに RESIGNAL が実行されました

  • エラー: 1646 SQLSTATE: HY000 (ER_SIGNAL_BAD_CONDITION_TYPE)

    メッセージ: SIGNAL/RESIGNAL では、SQLSTATE とともに定義された 1 つの CONDITION のみを使用できます

  • エラー: 1647 SQLSTATE: HY000 (WARN_COND_ITEM_TRUNCATED)

    メッセージ: 条件項目 '%s' のデータが切り捨てられました

  • エラー: 1648 SQLSTATE: HY000 (ER_COND_ITEM_TOO_LONG)

    メッセージ: 条件項目 '%s' のデータが長すぎます

  • エラー: 1649 SQLSTATE: HY000 (ER_UNKNOWN_LOCALE)

    メッセージ: 不明なロケール: '%s'

  • エラー: 1650 SQLSTATE: HY000 (ER_SLAVE_IGNORE_SERVER_IDS)

    メッセージ: 要求されたサーバー ID %d は、スレーブスタートアップオプション --replicate-same-server-id でクラッシュしました

  • エラー: 1651 SQLSTATE: HY000 (ER_QUERY_CACHE_DISABLED)

    メッセージ: クエリーキャッシュが無効にされています。サーバーを query_cache_type=1 で再起動して有効にしてください

  • エラー: 1652 SQLSTATE: HY000 (ER_SAME_NAME_PARTITION_FIELD)

    メッセージ: 重複したパーティションフィールド名 '%s'

  • エラー: 1653 SQLSTATE: HY000 (ER_PARTITION_COLUMN_LIST_ERROR)

    メッセージ: パーティショニングのカラムリストの使用方法に一貫性がありません

  • エラー: 1654 SQLSTATE: HY000 (ER_WRONG_TYPE_COLUMN_VALUE_ERROR)

    メッセージ: 不正な型のパーティションカラム値です

  • エラー: 1655 SQLSTATE: HY000 (ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR)

    メッセージ: '%s' のフィールドが多すぎます

  • エラー: 1656 SQLSTATE: HY000 (ER_MAXVALUE_IN_VALUES_IN)

    メッセージ: MAXVALUE は VALUES IN の値として使用できません

  • エラー: 1657 SQLSTATE: HY000 (ER_TOO_MANY_VALUES_ERROR)

    メッセージ: このタイプの %s パーティショニングには複数の値を指定できません

  • エラー: 1658 SQLSTATE: HY000 (ER_ROW_SINGLE_PARTITION_FIELD_ERROR)

    メッセージ: VALUES IN の行の式は、複数フィールドカラムのパーティショニングにのみ許可されます

  • エラー: 1659 SQLSTATE: HY000 (ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD)

    メッセージ: フィールド '%s' は、このタイプのパーティショニングに許可される型ではありません

  • エラー: 1660 SQLSTATE: HY000 (ER_PARTITION_FIELDS_TOO_LONG)

    メッセージ: パーティショニングフィールドの合計長が長すぎます

  • エラー: 1661 SQLSTATE: HY000 (ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE)

    メッセージ: ステートメントを実行できません: 行対応ではないエンジンおよびステートメント対応ではないエンジンの両方が呼び出されたため、バイナリログに書き込むことができません。

  • エラー: 1662 SQLSTATE: HY000 (ER_BINLOG_ROW_MODE_AND_STMT_ENGINE)

    メッセージ: ステートメントを実行できません: BINLOG_FORMAT = ROW ですが、少なくとも 1 つのテーブルがステートメントベースのロギングに制限されているストレージエンジンを使用しているため、バイナリログに書き込むことができません。

  • エラー: 1663 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_AND_STMT_ENGINE)

    メッセージ: ステートメントを実行できません: ストレージエンジンがステートメントベースのロギングに制限されていて、BINLOG_FORMAT = MIXED であり、ステートメントが安全ではないため、バイナリログに書き込むことができません。%s

  • エラー: 1664 SQLSTATE: HY000 (ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE)

    メッセージ: ステートメントを実行できません: ステートメントが行フォーマットであり、少なくとも 1 つのテーブルがステートメントベースのロギングに制限されているストレージエンジンを使用しているため、バイナリログに書き込むことができません。

  • エラー: 1665 SQLSTATE: HY000 (ER_BINLOG_STMT_MODE_AND_ROW_ENGINE)

    メッセージ: ステートメントを実行できません: BINLOG_FORMAT = STATEMENT ですが、少なくとも 1 つのテーブルが行ベースのロギングに制限されているストレージエンジンを使用しているため、バイナリログに書き込むことができません。%s

  • エラー: 1666 SQLSTATE: HY000 (ER_BINLOG_ROW_INJECTION_AND_STMT_MODE)

    メッセージ: ステートメントを実行できません: ステートメントが行フォーマットであり、BINLOG_FORMAT = STATEMENT であるため、バイナリログに書き込むことができません。

  • エラー: 1667 SQLSTATE: HY000 (ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE)

    メッセージ: ステートメントを実行できません: 複数のエンジンが関係していて、少なくとも 1 つのエンジンがセルフロギングであるため、バイナリログに書き込むことができません。

  • エラー: 1668 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_LIMIT)

    メッセージ: このステートメントは LIMIT 句を使用しているため安全ではありません。これは、含められる一連の行を予測できないため、安全ではありません。

  • エラー: 1669 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_INSERT_DELAYED)

    メッセージ: このステートメントは INSERT DELAYED を使用しているため安全ではありません。これは、行がいつ挿入されるかを予測できないため、安全ではありません。

  • エラー: 1670 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_SYSTEM_TABLE)

    メッセージ: このステートメントは、一般的なログ、スロークエリーログ、または performance_schema テーブルを使用しているため、安全ではありません。これは、システムテーブルがスレーブ間で異なる可能性があるため、安全ではありません。

  • エラー: 1671 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_AUTOINC_COLUMNS)

    メッセージ: ステートメントは、AUTO_INCREMENT カラムに挿入するトリガーまたはストアドファンクションを呼び出すため、安全ではありません。挿入される値を正しくログに記録できません。

  • エラー: 1672 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_UDF)

    メッセージ: ステートメントは、スレーブに同じ値を返さない可能性がある UDF を使用しているため、安全ではありません。

  • エラー: 1673 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_SYSTEM_VARIABLE)

    メッセージ: ステートメントは、スレーブで異なる値が保持されている可能性があるシステム変数を使用しているため、安全ではありません。

  • エラー: 1674 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_SYSTEM_FUNCTION)

    メッセージ: ステートメントは、スレーブに異なる値を返す可能性があるシステム関数を使用しているため、安全ではありません。

  • エラー: 1675 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS)

    メッセージ: ステートメントは、同じトランザクション内でトランザクションテーブルにアクセスしたあとに非トランザクションテーブルにアクセスするため、安全ではありません。

  • エラー: 1676 SQLSTATE: HY000 (ER_MESSAGE_AND_STATEMENT)

    メッセージ: %s ステートメント: %s

  • エラー: 1677 SQLSTATE: HY000 (ER_SLAVE_CONVERSION_FAILED)

    メッセージ: カラム %d (テーブル '%s.%s') は '%s' 型から '%s' 型に変換できません

  • エラー: 1678 SQLSTATE: HY000 (ER_SLAVE_CANT_CREATE_CONVERSION)

    メッセージ: テーブル '%s.%s' の変換テーブルを作成できません

  • エラー: 1679 SQLSTATE: HY000 (ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT)

    メッセージ: トランザクション内では @@session.binlog_format は変更できません

  • エラー: 1680 SQLSTATE: HY000 (ER_PATH_LENGTH)

    メッセージ: %s に指定されたパスが長すぎます。

  • エラー: 1681 SQLSTATE: HY000 (ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT)

    メッセージ: '%s' は将来のリリースで廃止予定です。

  • エラー: 1682 SQLSTATE: HY000 (ER_WRONG_NATIVE_TABLE_STRUCTURE)

    メッセージ: ネイティブテーブル '%s'.'%s' の構造は間違っています

  • エラー: 1683 SQLSTATE: HY000 (ER_WRONG_PERFSCHEMA_USAGE)

    メッセージ: performance_schema の使用方法が無効です。

  • エラー: 1684 SQLSTATE: HY000 (ER_WARN_I_S_SKIPPED_TABLE)

    メッセージ: 定義が並列 DDL ステートメントによって変更されているため、テーブル '%s'.'%s' はスキップされました。

  • エラー: 1685 SQLSTATE: HY000 (ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT)

    メッセージ: トランザクション内では @@session.binlog_direct_non_transactional_updates は変更できません

  • エラー: 1686 SQLSTATE: HY000 (ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT)

    メッセージ: ストアドファンクションまたはトリガー内では Binlog ダイレクトフラグは変更できません

  • エラー: 1687 SQLSTATE: 42000 (ER_SPATIAL_MUST_HAVE_GEOM_COL)

    メッセージ: SPATIAL インデックスには、幾何型カラムのみを含めることができます

  • エラー: 1688 SQLSTATE: HY000 (ER_TOO_LONG_INDEX_COMMENT)

    メッセージ: インデックス '%s' のコメントが長すぎます (最大 = %lu)

  • エラー: 1689 SQLSTATE: HY000 (ER_LOCK_ABORTED)

    メッセージ: 保留中の排他ロックのために、ロックの待機が中止されました

  • エラー: 1690 SQLSTATE: 22003 (ER_DATA_OUT_OF_RANGE)

    メッセージ: %s 値は '%s' で範囲外となっています

  • エラー: 1691 SQLSTATE: HY000 (ER_WRONG_SPVAR_TYPE_IN_LIMIT)

    メッセージ: LIMIT 句に整数ベースではない型の変数があります

  • エラー: 1692 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE)

    メッセージ: 1 つのステートメントにセルフロギングと非セルフロギングのエンジンを混在させることは、安全ではありません。

  • エラー: 1693 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_MIXED_STATEMENT)

    メッセージ: ステートメントが非トランザクションテーブルのほかにトランザクションテーブルまたは一時テーブルにアクセスしており、それらのいずれかに書き込んでいます。

  • エラー: 1694 SQLSTATE: HY000 (ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN)

    メッセージ: トランザクション内では @@session.sql_log_bin は変更できません

  • エラー: 1695 SQLSTATE: HY000 (ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN)

    メッセージ: ストアドファンクションまたはトリガー内では sql_log_bin は変更できません

  • エラー: 1696 SQLSTATE: HY000 (ER_FAILED_READ_FROM_PAR_FILE)

    メッセージ: .par ファイルからの読み取りに失敗しました

  • エラー: 1697 SQLSTATE: HY000 (ER_VALUES_IS_NOT_INT_TYPE_ERROR)

    メッセージ: パーティション '%s' の VALUES 値は INT 型である必要があります

    ER_VALUES_IS_NOT_INT_TYPE_ERROR は 5.6.1 で導入されました。

  • エラー: 1698 SQLSTATE: 28000 (ER_ACCESS_DENIED_NO_PASSWORD_ERROR)

    メッセージ: ユーザー '%s'@'%s' のアクセスは拒否されました。

    ER_ACCESS_DENIED_NO_PASSWORD_ERROR は 5.6.1 で導入されました。

  • エラー: 1699 SQLSTATE: HY000 (ER_SET_PASSWORD_AUTH_PLUGIN)

    メッセージ: プラグインを使用して認証を行うユーザーの場合、SET PASSWORD は意味を持ちません

    ER_SET_PASSWORD_AUTH_PLUGIN は 5.6.1 で導入されました。

  • エラー: 1700 SQLSTATE: HY000 (ER_GRANT_PLUGIN_USER_EXISTS)

    メッセージ: IDENTIFIED WITH を指定した GRANT は、ユーザー %-.*s がすでに存在するため不正です

    ER_GRANT_PLUGIN_USER_EXISTS は 5.6.1 で導入されました。

  • エラー: 1701 SQLSTATE: 42000 (ER_TRUNCATE_ILLEGAL_FK)

    メッセージ: 外部キー制約 (%s) で参照されているテーブルを切り捨てることはできません

    ER_TRUNCATE_ILLEGAL_FK は 5.6.1 で導入されました。

  • エラー: 1702 SQLSTATE: HY000 (ER_PLUGIN_IS_PERMANENT)

    メッセージ: プラグイン '%s' は force_plus_permanent であるため、アンロードできません

    ER_PLUGIN_IS_PERMANENT は 5.6.1 で導入されました。

  • エラー: 1703 SQLSTATE: HY000 (ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN)

    メッセージ: ハートビート間隔に要求された値は 1 ミリ秒より小さい値です。値は 0 にリセットされ、ハートビートが実質的に無効にされることを意味します。

    ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN は 5.6.1 で導入されました。

  • エラー: 1704 SQLSTATE: HY000 (ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX)

    メッセージ: ハートビート間隔に要求された値は、`slave_net_timeout' 秒を超えています。この間隔に適切な値は、タイムアウトより小さい値です。

    ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX は 5.6.1 で導入されました。

  • エラー: 1705 SQLSTATE: HY000 (ER_STMT_CACHE_FULL)

    メッセージ: 複数行のステートメントが、ストレージに 'max_binlog_stmt_cache_size' バイトより大きい領域を要求しました。この mysqld 変数の値を増やして再試行してください

    ER_STMT_CACHE_FULL は 5.6.1 で導入されました。

  • エラー: 1706 SQLSTATE: HY000 (ER_MULTI_UPDATE_KEY_CONFLICT)

    メッセージ: このテーブルは '%s' および '%s' として更新されるため、主キー/パーティションキーの更新は許可されません。

    ER_MULTI_UPDATE_KEY_CONFLICT は 5.6.2 で導入されました。

  • エラー: 1707 SQLSTATE: HY000 (ER_TABLE_NEEDS_REBUILD)

    メッセージ: テーブルを再構築する必要があります。"ALTER TABLE `%s` FORCE" を実行するか、ダンプ/リロードして修復してください。

    ER_TABLE_NEEDS_REBUILD は 5.6.3 で導入されました。

  • エラー: 1708 SQLSTATE: HY000 (WARN_OPTION_BELOW_LIMIT)

    メッセージ: '%s' の値は '%s' の値より小さくなるようにしてください

    WARN_OPTION_BELOW_LIMIT は 5.6.3 で導入されました。

  • エラー: 1709 SQLSTATE: HY000 (ER_INDEX_COLUMN_TOO_LONG)

    メッセージ: インデックスのカラムサイズが大きすぎます。最大のカラムサイズは %lu バイトです。

    ER_INDEX_COLUMN_TOO_LONG は 5.6.3 で導入されました。

  • エラー: 1710 SQLSTATE: HY000 (ER_ERROR_IN_TRIGGER_BODY)

    メッセージ: トリガー '%s' は本体にエラーがあります: '%s'

    ER_ERROR_IN_TRIGGER_BODY は 5.6.3 で導入されました。

  • エラー: 1711 SQLSTATE: HY000 (ER_ERROR_IN_UNKNOWN_TRIGGER_BODY)

    メッセージ: 不明なトリガーの本体にエラーがあります: '%s'

    ER_ERROR_IN_UNKNOWN_TRIGGER_BODY は 5.6.3 で導入されました。

  • エラー: 1712 SQLSTATE: HY000 (ER_INDEX_CORRUPT)

    メッセージ: インデックス %s は破損しています

    ER_INDEX_CORRUPT は 5.6.3 で導入されました。

  • エラー: 1713 SQLSTATE: HY000 (ER_UNDO_RECORD_TOO_BIG)

    メッセージ: Undo ログレコードが大きすぎます。

    ER_UNDO_RECORD_TOO_BIG は 5.6.4 で導入されました。

  • エラー: 1714 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT)

    メッセージ: SELECT によって取得される行の順序によって無視される行 (ある場合) が決まるため、INSERT IGNORE... SELECT は安全ではありません。この順序は予測できず、マスターとスレーブで異なる可能性があります。

    ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT は 5.6.4 で導入されました。

  • エラー: 1715 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE)

    メッセージ: SELECT によって取得される行の順序によって更新される行 (ある場合) が決まるため、INSERT... SELECT... ON DUPLICATE KEY UPDATE は安全ではありません。この順序は予測できず、マスターとスレーブで異なる可能性があります。

    ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE は 5.6.4 で導入されました。

  • エラー: 1716 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_REPLACE_SELECT)

    メッセージ: SELECT によって取得される行の順序によって置換される行 (ある場合) が決まるため、REPLACE... SELECT は安全ではありません。この順序は予測できず、マスターとスレーブで異なる可能性があります。

    ER_BINLOG_UNSAFE_REPLACE_SELECT は 5.6.4 で導入されました。

  • エラー: 1717 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT)

    メッセージ: SELECT によって取得される行の順序によって無視される行 (ある場合) が決まるため、CREATE... IGNORE SELECT は安全ではありません。この順序は予測できず、マスターとスレーブで異なる可能性があります。

    ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT は 5.6.4 で導入されました。

  • エラー: 1718 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT)

    メッセージ: SELECT によって取得される行の順序によって置換される行 (ある場合) が決まるため、CREATE... REPLACE SELECT は安全ではありません。この順序は予測できず、マスターとスレーブで異なる可能性があります。

    ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT は 5.6.4 で導入されました。

  • エラー: 1719 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_UPDATE_IGNORE)

    メッセージ: 行が更新される順序によって無視される行 (ある場合) が決まるため、UPDATE IGNORE は安全ではありません。この順序は予測できず、マスターとスレーブで異なる可能性があります。

    ER_BINLOG_UNSAFE_UPDATE_IGNORE は 5.6.4 で導入されました。

  • エラー: 1720 SQLSTATE: HY000 (ER_PLUGIN_NO_UNINSTALL)

    メッセージ: プラグイン '%s' は動的にアンインストールできないプラグインとしてマークされています。サーバーを停止してからアンインストールする必要があります。

    ER_PLUGIN_NO_UNINSTALL は 5.6.4 で導入されました。

  • エラー: 1721 SQLSTATE: HY000 (ER_CANT_LOCK_RPL_INFO_TABLE)

    メッセージ: rpl 情報テーブルに対してロックは使用できません。

    ER_CANT_LOCK_RPL_INFO_TABLE は 5.6.1 で導入され、5.6.3 で削除されました。

  • エラー: 1721 SQLSTATE: HY000 (ER_PLUGIN_NO_INSTALL)

    メッセージ: プラグイン '%s' は動的にインストールできないプラグインとしてマークされています。サーバーを停止してからインストールする必要があります。

    ER_PLUGIN_NO_INSTALL は 5.6.4 で導入されました。

  • エラー: 1722 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT)

    メッセージ: 行が取得される順序によって書き込まれる行 (ある場合) が決まるため、別のテーブルから選択したあとに自動インクリメントカラムを持つテーブルに書き込むステートメントは安全ではありません。この順序は予測できず、マスターとスレーブで異なる可能性があります。

    ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT は 5.6.5 で導入されました。

  • エラー: 1723 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC)

    メッセージ: SELECT によって取得される行の順序によって挿入される行 (ある場合) が決まるため、自動インクリメントカラムを持つテーブルに対して CREATE TABLE... SELECT... を実行することは安全ではありません。この順序は予測できず、マスターとスレーブで異なる可能性があります。

    ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC は 5.6.5 で導入されました。

  • エラー: 1724 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_INSERT_TWO_KEYS)

    メッセージ: 複数の UNIQUE KEY を持つテーブルに対して INSERT... ON DUPLICATE KEY UPDATE を実行するのは安全ではありません

    ER_BINLOG_UNSAFE_INSERT_TWO_KEYS は 5.6.6 で導入されました。

  • エラー: 1725 SQLSTATE: HY000 (ER_TABLE_IN_FK_CHECK)

    メッセージ: テーブルは外部キーチェックに使用されています。

    ER_TABLE_IN_FK_CHECK は 5.6.6 で導入されました。

  • エラー: 1726 SQLSTATE: HY000 (ER_UNSUPPORTED_ENGINE)

    メッセージ: ストレージエンジン '%s' はシステムテーブルをサポートしていません。[%s.%s]

    ER_UNSUPPORTED_ENGINE は 5.6.6 で導入されました。

  • エラー: 1727 SQLSTATE: HY000 (ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST)

    メッセージ: 構成された主キーの最初の部分ではない自動インクリメントフィールドに INSERT を実行するのは安全ではありません。

    ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST は 5.6.6 で導入されました。

  • エラー: 1728 SQLSTATE: HY000 (ER_CANNOT_LOAD_FROM_TABLE_V2)

    メッセージ: %s.%s からロードできません。テーブルが破損している可能性があります

  • エラー: 1729 SQLSTATE: HY000 (ER_NO_SUCH_PARTITION)

    メッセージ: パーティション '%s' は存在しません。

    ER_NO_SUCH_PARTITION は 5.6.2 で導入され、5.6.5 で削除されました。

  • エラー: 1729 SQLSTATE: HY000 (ER_MASTER_DELAY_VALUE_OUT_OF_RANGE)

    メッセージ: マスター遅延に要求された値 %s が最大値 %u を超えています

  • エラー: 1730 SQLSTATE: HY000 (ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT)

    メッセージ: BINLOG ステートメントでは、Format_description_log_event および行イベントのみが許可されます (ただし、%s が提供されました)

  • エラー: 1731 SQLSTATE: HY000 (ER_PARTITION_EXCHANGE_DIFFERENT_OPTION)

    メッセージ: パーティションとテーブルで属性 '%s' が一致しません

  • エラー: 1732 SQLSTATE: HY000 (ER_PARTITION_EXCHANGE_PART_TABLE)

    メッセージ: パーティションとやり取りするテーブルがパーティション化されています: '%s'

  • エラー: 1733 SQLSTATE: HY000 (ER_PARTITION_EXCHANGE_TEMP_TABLE)

    メッセージ: パーティションとやり取りするテーブルが一時テーブルです: '%s'

  • エラー: 1734 SQLSTATE: HY000 (ER_PARTITION_INSTEAD_OF_SUBPARTITION)

    メッセージ: サブパーティション化されたテーブルです。パーティションではなくサブパーティションを使用してください

  • エラー: 1735 SQLSTATE: HY000 (ER_UNKNOWN_PARTITION)

    メッセージ: 不明なパーティション '%s' がテーブル '%s' に存在します

  • エラー: 1736 SQLSTATE: HY000 (ER_TABLES_DIFFERENT_METADATA)

    メッセージ: テーブルの定義が異なります

  • エラー: 1737 SQLSTATE: HY000 (ER_ROW_DOES_NOT_MATCH_PARTITION)

    メッセージ: パーティションと一致しない行が見つかりました

  • エラー: 1738 SQLSTATE: HY000 (ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX)

    メッセージ: オプション binlog_cache_size (%lu) に max_binlog_cache_size (%lu) よりも大きい値が設定されています。binlog_cache_size に max_binlog_cache_size と等しい値が設定されました。

    ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX は 5.6.1 で導入されました。

  • エラー: 1739 SQLSTATE: HY000 (ER_WARN_INDEX_NOT_APPLICABLE)

    メッセージ: %s アクセスはインデックス '%s' に対して使用できません。これは、フィールド '%s' の型または照合順序の変換が原因です

    ER_WARN_INDEX_NOT_APPLICABLE は 5.6.1 で導入されました。

  • エラー: 1740 SQLSTATE: HY000 (ER_PARTITION_EXCHANGE_FOREIGN_KEY)

    メッセージ: パーティションとやり取りするテーブルに外部キー参照があります: '%s'

    ER_PARTITION_EXCHANGE_FOREIGN_KEY は 5.6.1 で導入されました。

  • エラー: 1741 SQLSTATE: HY000 (ER_NO_SUCH_KEY_VALUE)

    メッセージ: キー値 '%s' がテーブル '%s.%s' で見つかりませんでした

    ER_NO_SUCH_KEY_VALUE は 5.6.1 で導入されました。

  • エラー: 1742 SQLSTATE: HY000 (ER_RPL_INFO_DATA_TOO_LONG)

    メッセージ: カラム '%s' のデータが大きすぎます

    ER_RPL_INFO_DATA_TOO_LONG は 5.6.1 で導入されました。

  • エラー: 1743 SQLSTATE: HY000 (ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE)

    メッセージ: ネットワークから読み取り中に、レプリケーションイベントのチェックサム検証が失敗しました。

    ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE は 5.6.1 で導入されました。

  • エラー: 1744 SQLSTATE: HY000 (ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE)

    メッセージ: ログファイルから読み取り中に、レプリケーションイベントのチェックサム検証が失敗しました。

    ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE は 5.6.1 で導入されました。

  • エラー: 1745 SQLSTATE: HY000 (ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX)

    メッセージ: オプション binlog_stmt_cache_size (%lu) に max_binlog_stmt_cache_size (%lu) より大きい値が設定されています。binlog_stmt_cache_size に max_binlog_stmt_cache_size と等しい値が設定されました。

    ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX は 5.6.1 で導入されました。

  • エラー: 1746 SQLSTATE: HY000 (ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT)

    メッセージ: テーブル '%s' は '%s' の作成中に更新することはできません。

    ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT は 5.6.2 で導入されました。

  • エラー: 1747 SQLSTATE: HY000 (ER_PARTITION_CLAUSE_ON_NONPARTITIONED)

    メッセージ: パーティション化されていないテーブルに PARTITION () 句があります

    ER_PARTITION_CLAUSE_ON_NONPARTITIONED は 5.6.2 で導入されました。

  • エラー: 1748 SQLSTATE: HY000 (ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET)

    メッセージ: 指定されたパーティションセットと一致しない行が見つかりました

    ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET は 5.6.2 で導入されました。

  • エラー: 1749 SQLSTATE: HY000 (ER_NO_SUCH_PARTITION__UNUSED)

    メッセージ: パーティション '%s' は存在しません。

    ER_NO_SUCH_PARTITION__UNUSED は 5.6.6 で導入されました。

  • エラー: 1750 SQLSTATE: HY000 (ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE)

    メッセージ: レプリケーションリポジトリのタイプの変更中に障害が発生しました: %s。

    ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE は 5.6.3 で導入されました。

  • エラー: 1751 SQLSTATE: HY000 (ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE)

    メッセージ: 一部の一時テーブルの作成をロールバックできませんでした。

    ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE は 5.6.3 で導入されました。

  • エラー: 1752 SQLSTATE: HY000 (ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE)

    メッセージ: 一部の一時テーブルがドロップされましたが、それらの操作をロールバックできませんでした。

    ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE は 5.6.3 で導入されました。

  • エラー: 1753 SQLSTATE: HY000 (ER_MTS_FEATURE_IS_NOT_SUPPORTED)

    メッセージ: %s はマルチスレッドスレーブモードではサポートされません。%s

    ER_MTS_FEATURE_IS_NOT_SUPPORTED は 5.6.3 で導入されました。

  • エラー: 1754 SQLSTATE: HY000 (ER_MTS_UPDATED_DBS_GREATER_MAX)

    メッセージ: 変更されたデータベース数が最大値の %d を超えました。データベース名はレプリケーションイベントのメタデータに含められません。

    ER_MTS_UPDATED_DBS_GREATER_MAX は 5.6.3 で導入されました。

  • エラー: 1755 SQLSTATE: HY000 (ER_MTS_CANT_PARALLEL)

    メッセージ: 並列モードでは現在のイベントグループを実行できません。イベント %s、リレーログ名 %s、位置 %s が発生し、並列モードでのこのイベントグループの実行が妨げられています。理由: %s。

    ER_MTS_CANT_PARALLEL は 5.6.3 で導入されました。

  • エラー: 1756 SQLSTATE: HY000 (ER_MTS_INCONSISTENT_DATA)

    メッセージ: %s

    ER_MTS_INCONSISTENT_DATA は 5.6.3 で導入されました。

  • エラー: 1757 SQLSTATE: HY000 (ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING)

    メッセージ: FULLTEXT インデックスは、パーティション化されたテーブルではサポートされません。

    ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING は 5.6.4 で導入されました。

  • エラー: 1758 SQLSTATE: 35000 (ER_DA_INVALID_CONDITION_NUMBER)

    メッセージ: 無効な条件数

    ER_DA_INVALID_CONDITION_NUMBER は 5.6.4 で導入されました。

  • エラー: 1759 SQLSTATE: HY000 (ER_INSECURE_PLAIN_TEXT)

    メッセージ: SSL/TLS を使用せずに平文でパスワードを送信することは、セキュリティー保護に大きな問題があります。

    ER_INSECURE_PLAIN_TEXT は 5.6.4 で導入されました。

  • エラー: 1760 SQLSTATE: HY000 (ER_INSECURE_CHANGE_MASTER)

    メッセージ: MySQL のユーザー名またはパスワードの情報をマスター情報リポジトリに格納するとセキュリティー保護されないためお勧めしません。START SLAVE に USER および PASSWORD 接続オプションを使用することを検討してください。詳細は、MySQL マニュアルの「START SLAVE 構文」を参照してください。

    ER_INSECURE_CHANGE_MASTER は 5.6.4 で導入されました。

  • エラー: 1761 SQLSTATE: 23000 (ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO)

    メッセージ: テーブル '%s'、レコード '%s' の外部キー制約によって、テーブル '%s'、キー '%s' に重複したエントリが作成されることがあります

    ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO は 5.6.4 で導入されました。

  • エラー: 1762 SQLSTATE: 23000 (ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO)

    メッセージ: テーブル '%s'、レコード '%s' の外部キー制約によって、子テーブルに重複したエントリが作成されることがあります

    ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO は 5.6.4 で導入されました。

  • エラー: 1763 SQLSTATE: HY000 (ER_SQLTHREAD_WITH_SECURE_SLAVE)

    メッセージ: スレーブ SQL スレッドのみが開始されている場合、認証オプションは設定できません。

    ER_SQLTHREAD_WITH_SECURE_SLAVE は 5.6.4 で導入されました。

  • エラー: 1764 SQLSTATE: HY000 (ER_TABLE_HAS_NO_FT)

    メッセージ: このクエリーをサポートするための FULLTEXT インデックスがテーブルにありません

    ER_TABLE_HAS_NO_FT は 5.6.4 で導入されました。

  • エラー: 1765 SQLSTATE: HY000 (ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER)

    メッセージ: システム変数 %s は、ストアドファンクションまたはトリガーでは設定できません。

    ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER は 5.6.5 で導入されました。

  • エラー: 1766 SQLSTATE: HY000 (ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION)

    メッセージ: 実行中のトランザクションがある場合、システム変数 %s は設定できません。

    ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION は 5.6.5 で導入されました。

  • エラー: 1767 SQLSTATE: HY000 (ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST)

    メッセージ: システム変数 @@SESSION.GTID_NEXT の値が、@@SESSION.GTID_NEXT_LIST にリストされていない値 %s です。

    ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST は 5.6.5 で導入されました。

  • エラー: 1768 SQLSTATE: HY000 (ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION_WHEN_GTID_NEXT_LIST_IS_NULL)

    メッセージ: システム変数 @@SESSION.GTID_NEXT は、トランザクション内で変更できません。

    ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION_WHEN_GTID_NEXT_LIST_IS_NULL は 5.6.5 で導入されました。

  • エラー: 1769 SQLSTATE: HY000 (ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION)

    メッセージ: ステートメント 'SET %s' は、ストアドファンクションを呼び出すことはできません。

    ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION は 5.6.5 で導入されました。

  • エラー: 1770 SQLSTATE: HY000 (ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL)

    メッセージ: @@SESSION.GTID_NEXT_LIST が NULL ではない場合、システム変数 @@SESSION.GTID_NEXT を 'AUTOMATIC' にすることはできません。

    ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL は 5.6.5 で導入されました。

  • エラー: 1771 SQLSTATE: HY000 (ER_SKIPPING_LOGGED_TRANSACTION)

    メッセージ: すでに実行されてログに記録されているため、トランザクション %s はスキップされました。

    ER_SKIPPING_LOGGED_TRANSACTION は 5.6.5 で導入されました。

  • エラー: 1772 SQLSTATE: HY000 (ER_MALFORMED_GTID_SET_SPECIFICATION)

    メッセージ: GTID セットの指定 '%s' は誤った形式です。

    ER_MALFORMED_GTID_SET_SPECIFICATION は 5.6.5 で導入されました。

  • エラー: 1773 SQLSTATE: HY000 (ER_MALFORMED_GTID_SET_ENCODING)

    メッセージ: GTID セットのエンコードが誤った形式です。

    ER_MALFORMED_GTID_SET_ENCODING は 5.6.5 で導入されました。

  • エラー: 1774 SQLSTATE: HY000 (ER_MALFORMED_GTID_SPECIFICATION)

    メッセージ: 誤った形式の GTID 指定 '%s'。

    ER_MALFORMED_GTID_SPECIFICATION は 5.6.5 で導入されました。

  • エラー: 1775 SQLSTATE: HY000 (ER_GNO_EXHAUSTED)

    メッセージ: グローバルトランザクション識別子を生成できません: 整数コンポーネントが最大値に達しました。新しい server_uuid でサーバーを再起動してください。

    ER_GNO_EXHAUSTED は 5.6.5 で導入されました。

  • エラー: 1776 SQLSTATE: HY000 (ER_BAD_SLAVE_AUTO_POSITION)

    メッセージ: MASTER_AUTO_POSITION がアクティブである場合、パラメータ MASTER_LOG_FILE、MASTER_LOG_POS、RELAY_LOG_FILE、および RELAY_LOG_POS は設定できません。

    ER_BAD_SLAVE_AUTO_POSITION は 5.6.5 で導入されました。

  • エラー: 1777 SQLSTATE: HY000 (ER_AUTO_POSITION_REQUIRES_GTID_MODE_ON)

    メッセージ: CHANGE MASTER TO MASTER_AUTO_POSITION = 1 は、@@GLOBAL.GTID_MODE = ON のときにのみ実行できます。

    ER_AUTO_POSITION_REQUIRES_GTID_MODE_ON は 5.6.5 で導入されました。

  • エラー: 1778 SQLSTATE: HY000 (ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET)

    メッセージ: @@SESSION.GTID_NEXT != AUTOMATIC である場合、暗黙的なコミットを行うステートメントはトランザクション内で実行できません。

    ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET は 5.6.5 で導入されました。

  • エラー: 1779 SQLSTATE: HY000 (ER_GTID_MODE_2_OR_3_REQUIRES_DISABLE_GTID_UNSAFE_STATEMENTS_ON)

    メッセージ: GTID_MODE = ON または GTID_MODE = UPGRADE_STEP_2 を指定する場合は、DISABLE_GTID_UNSAFE_STATEMENTS = 1 である必要があります。

    ER_GTID_MODE_2_OR_3_REQUIRES_DISABLE_GTID_UNSAFE_STATEMENTS_ON は 5.6.5 で導入され、5.6.8 で削除されました。

    5.6.9 で、ER_GTID_MODE_2_OR_3_REQUIRES_DISABLE_GTID_UNSAFE_STATEMENTS_ONER_GTID_MODE_2_OR_3_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON に名前変更されました。

  • エラー: 1779 SQLSTATE: HY000 (ER_GTID_MODE_2_OR_3_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON)

    メッセージ: @@GLOBAL.GTID_MODE = ON または UPGRADE_STEP_2 を指定する場合は、@@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1 である必要があります。

    ER_GTID_MODE_2_OR_3_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON は 5.6.9 で導入されました。

    5.6.9 で、ER_GTID_MODE_2_OR_3_REQUIRES_DISABLE_GTID_UNSAFE_STATEMENTS_ONER_GTID_MODE_2_OR_3_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON に名前変更されました。

  • エラー: 1780 SQLSTATE: HY000 (ER_GTID_MODE_REQUIRES_BINLOG)

    メッセージ: @@GLOBAL.GTID_MODE = ON、UPGRADE_STEP_1、または UPGRADE_STEP_2 を指定する場合は、--log-bin および --log-slave-updates である必要があります。

    ER_GTID_MODE_REQUIRES_BINLOG は 5.6.5 で導入されました。

  • エラー: 1781 SQLSTATE: HY000 (ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF)

    メッセージ: @@GLOBAL.GTID_MODE = OFF の場合、@@SESSION.GTID_NEXT に UUID:NUMBER を設定できません。

    ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF は 5.6.5 で導入されました。

  • エラー: 1782 SQLSTATE: HY000 (ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON)

    メッセージ: @@GLOBAL.GTID_MODE = ON の場合、@@SESSION.GTID_NEXT に ANONYMOUS を設定できません。

    ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON は 5.6.5 で導入されました。

  • エラー: 1783 SQLSTATE: HY000 (ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF)

    メッセージ: @@GLOBAL.GTID_MODE = OFF の場合、@@SESSION.GTID_NEXT_LIST に NULL ではない値は設定できません。

    ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF は 5.6.5 で導入されました。

  • エラー: 1784 SQLSTATE: HY000 (ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF)

    メッセージ: @@GLOBAL.GTID_MODE = OFF のときに、Gtid_log_event または Previous_gtids_log_event が見つかりました。

    ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF は 5.6.5 で導入されました。

  • エラー: 1785 SQLSTATE: HY000 (ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE)

    メッセージ: @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1 の場合、非トランザクションテーブルへの更新は、自動コミットステートメントまたは単一ステートメントのトランザクションでのみ行うことができ、トランザクションテーブルの更新と同じステートメントで行うことはできません。

    ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE は 5.6.5 で導入されました。

  • エラー: 1786 SQLSTATE: HY000 (ER_GTID_UNSAFE_CREATE_SELECT)

    メッセージ: @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1 の場合、CREATE TABLE ... SELECT は禁止されています。

    ER_GTID_UNSAFE_CREATE_SELECT は 5.6.5 で導入されました。

  • エラー: 1787 SQLSTATE: HY000 (ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION)

    メッセージ: @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1 の場合、ステートメント CREATE TEMPORARY TABLE および DROP TEMPORARY TABLE は非トランザクションコンテキストでのみ実行でき、AUTOCOMMIT = 1 である必要があります。

    ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION は 5.6.5 で導入されました。

  • エラー: 1788 SQLSTATE: HY000 (ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME)

    メッセージ: @@GLOBAL.GTID_MODE の値は一度に 1 ステップのみ変更できます: OFF <-> UPGRADE_STEP_1 <-> UPGRADE_STEP_2 <-> ON。また、この値はすべてのサーバーで同時に変更する必要があります。手順については、マニュアルを参照してください。

    ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME は 5.6.5 で導入されました。

  • エラー: 1789 SQLSTATE: HY000 (ER_MASTER_HAS_PURGED_REQUIRED_GTIDS)

    メッセージ: スレーブは CHANGE MASTER TO MASTER_AUTO_POSITION = 1 を使用して接続していますが、スレーブが必要とする GTID を含むバイナリログがマスターによってパージされました。

    ER_MASTER_HAS_PURGED_REQUIRED_GTIDS は 5.6.5 で導入されました。

  • エラー: 1790 SQLSTATE: HY000 (ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID)

    メッセージ: GTID を所有するクライアントは @@SESSION.GTID_NEXT を変更できません。クライアントは %s を所有しています。所有権は COMMIT または ROLLBACK によって解放されます。

    ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID は 5.6.5 で導入されました。

  • エラー: 1791 SQLSTATE: HY000 (ER_UNKNOWN_EXPLAIN_FORMAT)

    メッセージ: 不明な EXPLAIN 形式名: '%s'

    ER_UNKNOWN_EXPLAIN_FORMAT は 5.6.5 で導入されました。

  • エラー: 1792 SQLSTATE: 25006 (ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION)

    メッセージ: READ ONLY トランザクション内ではステートメントを実行できません。

    ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION は 5.6.5 で導入されました。

  • エラー: 1793 SQLSTATE: HY000 (ER_TOO_LONG_TABLE_PARTITION_COMMENT)

    メッセージ: テーブルパーティション '%s' のコメントが長すぎます (最大 = %lu)

    ER_TOO_LONG_TABLE_PARTITION_COMMENT は 5.6.6 で導入されました。

  • エラー: 1794 SQLSTATE: HY000 (ER_SLAVE_CONFIGURATION)

    メッセージ: スレーブが構成されていないか、正常に初期化されませんでした。マスターまたはスレーブを有効にするには、少なくとも --server-id を設定する必要があります。追加のエラーメッセージは MySQL エラーログにあります。

    ER_SLAVE_CONFIGURATION は 5.6.6 で導入されました。

  • エラー: 1795 SQLSTATE: HY000 (ER_INNODB_FT_LIMIT)

    メッセージ: InnoDB は、現在、一度に 1 つの FULLTEXT インデックスの作成をサポートしています

    ER_INNODB_FT_LIMIT は 5.6.4 で導入されました。

  • エラー: 1796 SQLSTATE: HY000 (ER_INNODB_NO_FT_TEMP_TABLE)

    メッセージ: InnoDB の一時テーブルには FULLTEXT インデックスを作成できません

    ER_INNODB_NO_FT_TEMP_TABLE は 5.6.4 で導入されました。

  • エラー: 1797 SQLSTATE: HY000 (ER_INNODB_FT_WRONG_DOCID_COLUMN)

    メッセージ: カラム '%s' は InnoDB の FULLTEXT インデックスでは間違った型です

    ER_INNODB_FT_WRONG_DOCID_COLUMN は 5.6.6 で導入されました。

  • エラー: 1798 SQLSTATE: HY000 (ER_INNODB_FT_WRONG_DOCID_INDEX)

    メッセージ: インデックス '%s' は InnoDB の FULLTEXT インデックスでは間違った型です

    ER_INNODB_FT_WRONG_DOCID_INDEX は 5.6.6 で導入されました。

  • エラー: 1799 SQLSTATE: HY000 (ER_INNODB_ONLINE_LOG_TOO_BIG)

    メッセージ: インデックス '%s' を作成するには、変更ログに 'innodb_online_alter_log_max_size' バイトより大きい領域が必要となります。再試行してください。

    ER_INNODB_ONLINE_LOG_TOO_BIG は 5.6.6 で導入されました。

  • エラー: 1800 SQLSTATE: HY000 (ER_UNKNOWN_ALTER_ALGORITHM)

    メッセージ: 不明な ALGORITHM '%s'

    ER_UNKNOWN_ALTER_ALGORITHM は 5.6.6 で導入されました。

  • エラー: 1801 SQLSTATE: HY000 (ER_UNKNOWN_ALTER_LOCK)

    メッセージ: 不明な LOCK タイプ '%s'

    ER_UNKNOWN_ALTER_LOCK は 5.6.6 で導入されました。

  • エラー: 1802 SQLSTATE: HY000 (ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS)

    メッセージ: スレーブがエラーで停止されたか、MTS モードで強制終了された場合、CHANGE MASTER は実行できません。RESET SLAVE または START SLAVE UNTIL の使用を検討してください。

    ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS は 5.6.6 で導入されました。

  • エラー: 1803 SQLSTATE: HY000 (ER_MTS_RECOVERY_FAILURE)

    メッセージ: 並列実行モードのときに SLAVE でエラーが発生した場合は、リカバリできません。追加のエラーメッセージは MySQL エラーログにあります。

    ER_MTS_RECOVERY_FAILURE は 5.6.6 で導入されました。

  • エラー: 1804 SQLSTATE: HY000 (ER_MTS_RESET_WORKERS)

    メッセージ: ワーカー情報テーブルをクリーンアップできません。追加のエラーメッセージは MySQL エラーログにあります。

    ER_MTS_RESET_WORKERS は 5.6.6 で導入されました。

  • エラー: 1805 SQLSTATE: HY000 (ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2)

    メッセージ: %s.%s のカラム数が間違っています。%d 個を予期しましたが、%d 個が見つかりました。テーブルが破損している可能性があります

  • エラー: 1806 SQLSTATE: HY000 (ER_SLAVE_SILENT_RETRY_TRANSACTION)

    メッセージ: スレーブは現在のトランザクションを暗黙のうちに再試行する必要があります

    ER_SLAVE_SILENT_RETRY_TRANSACTION は 5.6.6 で導入されました。

  • エラー: 1807 SQLSTATE: HY000 (ER_DISCARD_FK_CHECKS_RUNNING)

    メッセージ: テーブル '%s' で外部キーチェックが実行されています。テーブルを破棄できません。

    ER_DISCARD_FK_CHECKS_RUNNING は 5.6.6 で導入されました。

  • エラー: 1808 SQLSTATE: HY000 (ER_TABLE_SCHEMA_MISMATCH)

    メッセージ: スキーマの不一致 (%s)

    ER_TABLE_SCHEMA_MISMATCH は 5.6.6 で導入されました。

  • エラー: 1809 SQLSTATE: HY000 (ER_TABLE_IN_SYSTEM_TABLESPACE)

    メッセージ: テーブル '%s' はシステムテーブルスペースにあります

    ER_TABLE_IN_SYSTEM_TABLESPACE は 5.6.6 で導入されました。

  • エラー: 1810 SQLSTATE: HY000 (ER_IO_READ_ERROR)

    メッセージ: IO 読み取りエラー: (%lu、%s) %s

    ER_IO_READ_ERROR は 5.6.6 で導入されました。

  • エラー: 1811 SQLSTATE: HY000 (ER_IO_WRITE_ERROR)

    メッセージ: IO 書き込みエラー: (%lu、%s) %s

    ER_IO_WRITE_ERROR は 5.6.6 で導入されました。

  • エラー: 1812 SQLSTATE: HY000 (ER_TABLESPACE_MISSING)

    メッセージ: テーブル '%s' のテーブルスペースがありません

    ER_TABLESPACE_MISSING は 5.6.6 で導入されました。

  • エラー: 1813 SQLSTATE: HY000 (ER_TABLESPACE_EXISTS)

    メッセージ: テーブル '%s' のテーブルスペースは存在します。IMPORT を行う前に、そのテーブルスペースを DISCARD してください。

    ER_TABLESPACE_EXISTS は 5.6.6 で導入されました。

  • エラー: 1814 SQLSTATE: HY000 (ER_TABLESPACE_DISCARDED)

    メッセージ: テーブル '%s' のテーブルスペースは破棄されています

    ER_TABLESPACE_DISCARDED は 5.6.6 で導入されました。

  • エラー: 1815 SQLSTATE: HY000 (ER_INTERNAL_ERROR)

    メッセージ: 内部エラー: %s

    ER_INTERNAL_ERROR は 5.6.6 で導入されました。

  • エラー: 1816 SQLSTATE: HY000 (ER_INNODB_IMPORT_ERROR)

    メッセージ: ALTER TABLE '%s' IMPORT TABLESPACE がエラー %lu で失敗しました: '%s'

    ER_INNODB_IMPORT_ERROR は 5.6.6 で導入されました。

  • エラー: 1817 SQLSTATE: HY000 (ER_INNODB_INDEX_CORRUPT)

    メッセージ: インデックスが破損しています: %s

    ER_INNODB_INDEX_CORRUPT は 5.6.6 で導入されました。

  • エラー: 1818 SQLSTATE: HY000 (ER_INVALID_YEAR_COLUMN_LENGTH)

    メッセージ: YEAR(%lu) カラム型は非推奨です。代わりに YEAR(4) カラムを作成してください。

    ER_INVALID_YEAR_COLUMN_LENGTH は 5.6.6 で導入されました。

  • エラー: 1819 SQLSTATE: HY000 (ER_NOT_VALID_PASSWORD)

    メッセージ: パスワードが現在のポリシー要件を満たしていません

    ER_NOT_VALID_PASSWORD は 5.6.6 で導入されました。

  • エラー: 1820 SQLSTATE: HY000 (ER_MUST_CHANGE_PASSWORD)

    メッセージ: このステートメントを実行する前に、SET PASSWORD を実行する必要があります

    ER_MUST_CHANGE_PASSWORD は 5.6.6 で導入されました。

  • エラー: 1821 SQLSTATE: HY000 (ER_FK_NO_INDEX_CHILD)

    メッセージ: 外部キー制約の追加に失敗しました。制約 '%s' (外部テーブル '%s') にインデックスがありません

    ER_FK_NO_INDEX_CHILD は 5.6.6 で導入されました。

  • エラー: 1822 SQLSTATE: HY000 (ER_FK_NO_INDEX_PARENT)

    メッセージ: 外部キー制約の追加に失敗しました。制約 '%s' (参照されるテーブル '%s') にインデックスがありません

    ER_FK_NO_INDEX_PARENT は 5.6.6 で導入されました。

  • エラー: 1823 SQLSTATE: HY000 (ER_FK_FAIL_ADD_SYSTEM)

    メッセージ: システムテーブルへの外部キー制約 '%s' の追加に失敗しました

    ER_FK_FAIL_ADD_SYSTEM は 5.6.6 で導入されました。

  • エラー: 1824 SQLSTATE: HY000 (ER_FK_CANNOT_OPEN_PARENT)

    メッセージ: 参照テーブル '%s' のオープンに失敗しました

    ER_FK_CANNOT_OPEN_PARENT は 5.6.6 で導入されました。

  • エラー: 1825 SQLSTATE: HY000 (ER_FK_INCORRECT_OPTION)

    メッセージ: テーブル '%s' への外部キー制約の追加に失敗しました。FOREIGN KEY 制約 '%s' のオプションが不正です

    ER_FK_INCORRECT_OPTION は 5.6.6 で導入されました。

  • エラー: 1826 SQLSTATE: HY000 (ER_FK_DUP_NAME)

    メッセージ: 重複した外部キー制約名 '%s'

    ER_FK_DUP_NAME は 5.6.6 で導入されました。

  • エラー: 1827 SQLSTATE: HY000 (ER_PASSWORD_FORMAT)

    メッセージ: パスワードハッシュが予期した形式ではありません。PASSWORD() 関数で正しいパスワードアルゴリズムが使用されていることを確認してください。

    ER_PASSWORD_FORMAT は 5.6.6 で導入されました。

  • エラー: 1828 SQLSTATE: HY000 (ER_FK_COLUMN_CANNOT_DROP)

    メッセージ: カラム '%s' をドロップできません: 外部キー制約 '%s' で必要とされています

    ER_FK_COLUMN_CANNOT_DROP は 5.6.6 で導入されました。

  • エラー: 1829 SQLSTATE: HY000 (ER_FK_COLUMN_CANNOT_DROP_CHILD)

    メッセージ: カラム '%s' をドロップできません: 外部キー制約 '%s' (テーブル '%s') で必要とされています

    ER_FK_COLUMN_CANNOT_DROP_CHILD は 5.6.6 で導入されました。

  • エラー: 1830 SQLSTATE: HY000 (ER_FK_COLUMN_NOT_NULL)

    メッセージ: カラム '%s' は NOT NULL にできません: 外部キー制約 '%s' SET NULL で必要とされています

    ER_FK_COLUMN_NOT_NULL は 5.6.6 で導入されました。

  • エラー: 1831 SQLSTATE: HY000 (ER_DUP_INDEX)

    メッセージ: 重複したインデックス '%s' がテーブル '%s.%s' に定義されています。これは非推奨であり、将来のリリースでは許可されなくなります。

    ER_DUP_INDEX は 5.6.7 で導入されました。

  • エラー: 1832 SQLSTATE: HY000 (ER_FK_COLUMN_CANNOT_CHANGE)

    メッセージ: カラム '%s' を変更できません: 外部キー制約 '%s' で使用されています

    ER_FK_COLUMN_CANNOT_CHANGE は 5.6.7 で導入されました。

  • エラー: 1833 SQLSTATE: HY000 (ER_FK_COLUMN_CANNOT_CHANGE_CHILD)

    メッセージ: カラム '%s' を変更できません: 外部キー制約 '%s' (テーブル '%s') で使用されています

    ER_FK_COLUMN_CANNOT_CHANGE_CHILD は 5.6.7 で導入されました。

  • エラー: 1834 SQLSTATE: HY000 (ER_FK_CANNOT_DELETE_PARENT)

    メッセージ: 外部キー制約 '%s' (テーブル '%s') の親であるテーブルからは行を削除できません

    ER_FK_CANNOT_DELETE_PARENT は 5.6.7 で導入されました。

  • エラー: 1835 SQLSTATE: HY000 (ER_MALFORMED_PACKET)

    メッセージ: 誤った形式のパケットです。

    ER_MALFORMED_PACKET は 5.6.7 で導入されました。

  • エラー: 1836 SQLSTATE: HY000 (ER_READ_ONLY_MODE)

    メッセージ: 読み取り専用モードで実行されています

    ER_READ_ONLY_MODE は 5.6.8 で導入されました。

  • エラー: 1837 SQLSTATE: HY000 (ER_GTID_NEXT_TYPE_UNDEFINED_GROUP)

    メッセージ: @@SESSION.GTID_NEXT に GTID が設定されている場合は、COMMIT または ROLLBACK のあとに、明示的に別の値を設定する必要があります。詳細は、GTID_NEXT 変数のマニュアルページを参照してください。現在の @@SESSION.GTID_NEXT は '%s' です。

    ER_GTID_NEXT_TYPE_UNDEFINED_GROUP は 5.6.9 で導入されました。

  • エラー: 1838 SQLSTATE: HY000 (ER_VARIABLE_NOT_SETTABLE_IN_SP)

    メッセージ: システム変数 %s はストアドプロシージャーで設定できません。

    ER_VARIABLE_NOT_SETTABLE_IN_SP は 5.6.9 で導入されました。

  • エラー: 1839 SQLSTATE: HY000 (ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF)

    メッセージ: @@GLOBAL.GTID_PURGED は @@GLOBAL.GTID_MODE = ON のときにのみ設定できます。

    ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF は 5.6.9 で導入されました。

  • エラー: 1840 SQLSTATE: HY000 (ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY)

    メッセージ: @@GLOBAL.GTID_PURGED は @@GLOBAL.GTID_EXECUTED が空であるときにのみ設定できます。

    ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY は 5.6.9 で導入されました。

  • エラー: 1841 SQLSTATE: HY000 (ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY)

    メッセージ: @@GLOBAL.GTID_PURGED は、実行中のトランザクションがない (ほかのクライアントでも) ときにのみ設定できます。

    ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY は 5.6.9 で導入されました。

  • エラー: 1842 SQLSTATE: HY000 (ER_GTID_PURGED_WAS_CHANGED)

    メッセージ: @@GLOBAL.GTID_PURGED が '%s' から '%s' に変更されました。

    ER_GTID_PURGED_WAS_CHANGED は 5.6.9 で導入されました。

  • エラー: 1843 SQLSTATE: HY000 (ER_GTID_EXECUTED_WAS_CHANGED)

    メッセージ: @@GLOBAL.GTID_EXECUTED が '%s' から '%s' に変更されました。

    ER_GTID_EXECUTED_WAS_CHANGED は 5.6.9 で導入されました。

  • エラー: 1844 SQLSTATE: HY000 (ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES)

    メッセージ: ステートメントを実行できません: BINLOG_FORMAT = STATEMENT であり、レプリケートされるテーブルとレプリケートされないテーブルの両方に書き込んでいるため、バイナリログに書き込むことができません。

    ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES は 5.6.9 で導入されました。

  • エラー: 1845 SQLSTATE: 0A000 (ER_ALTER_OPERATION_NOT_SUPPORTED)

    メッセージ: %s はこの操作ではサポートされません。%s を試してください。

    ER_ALTER_OPERATION_NOT_SUPPORTED は 5.6.10 で導入されました。

  • エラー: 1846 SQLSTATE: 0A000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON)

    メッセージ: %s はサポートされていません。理由: %s。%s を試してください。

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON は 5.6.10 で導入されました。

  • エラー: 1847 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY)

    メッセージ: COPY アルゴリズムではロックが必要となります

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY は 5.6.10 で導入されました。

  • エラー: 1848 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION)

    メッセージ: パーティション固有の操作では、LOCK/ALGORITHM はまだサポートされていません

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION は 5.6.10 で導入されました。

  • エラー: 1849 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME)

    メッセージ: 外部キーのカラムパーティショニングが名前変更されました

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME は 5.6.10 で導入されました。

  • エラー: 1850 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE)

    メッセージ: カラム型 INPLACE は変更できません

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE は 5.6.10 で導入されました。

  • エラー: 1851 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK)

    メッセージ: 外部キーを追加するには、foreign_key_checks=OFF にする必要があります

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK は 5.6.10 で導入されました。

  • エラー: 1852 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_IGNORE)

    メッセージ: IGNORE を指定して一意のインデックスを作成するには、重複した行を削除する COPY アルゴリズムが必要となります

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_IGNORE は 5.6.10 で導入されました。

  • エラー: 1853 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK)

    メッセージ: 新しい主キーを追加せずに主キーをドロップすることは許可されません

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK は 5.6.10 で導入されました。

  • エラー: 1854 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC)

    メッセージ: 自動インクリメントカラムを追加する場合は、ロックする必要があります

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC は 5.6.10 で導入されました。

  • エラー: 1855 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS)

    メッセージ: 非表示の FTS_DOC_ID をユーザーが表示できるものに置き換えることはできません

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS は 5.6.10 で導入されました。

  • エラー: 1856 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS)

    メッセージ: FTS_DOC_ID をドロップまたは名前変更できません

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS は 5.6.10 で導入されました。

  • エラー: 1857 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS)

    メッセージ: FULLTEXT インデックスを作成する場合は、ロックする必要があります

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS は 5.6.10 で導入されました。

  • エラー: 1858 SQLSTATE: HY000 (ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE)

    メッセージ: サーバーが @@GLOBAL.GTID_MODE = ON で実行されている場合、sql_slave_skip_counter は設定できません。代わりに、スキップするトランザクションごとに、そのトランザクションと同じ GTID を持つ空のトランザクションを生成してください

    ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE は 5.6.10 で導入されました。

  • エラー: 1859 SQLSTATE: 23000 (ER_DUP_UNKNOWN_IN_INDEX)

    メッセージ: キー '%s' で重複しています

    ER_DUP_UNKNOWN_IN_INDEX は 5.6.10 で導入されました。

  • エラー: 1860 SQLSTATE: HY000 (ER_IDENT_CAUSES_TOO_LONG_PATH)

    メッセージ: データベース名およびオブジェクトの識別子が長いため、パスの長さが %d 文字を超えました。パス: '%s'。

    ER_IDENT_CAUSES_TOO_LONG_PATH は 5.6.10 で導入されました。

  • エラー: 1861 SQLSTATE: HY000 (ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL)

    メッセージ: この SQL_MODE で要求されているように NULL 値を暗黙のうちに変換することはできません

    ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL は 5.6.10 で導入されました。

  • エラー: 1862 SQLSTATE: HY000 (ER_MUST_CHANGE_PASSWORD_LOGIN)

    メッセージ: パスワードの期限が切れました。ログインするには、期限切れのパスワードをサポートするクライアントを使用して、それを変更する必要があります。

    ER_MUST_CHANGE_PASSWORD_LOGIN は 5.6.11 で導入されました。

  • エラー: 1863 SQLSTATE: HY000 (ER_ROW_IN_WRONG_PARTITION)

    メッセージ: 間違ったパーティション %s で行が見つかりました

    ER_ROW_IN_WRONG_PARTITION は 5.6.11 で導入されました。

  • エラー: 1864 SQLSTATE: HY000 (ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX)

    メッセージ: イベント %s、リレーログ名 %s、位置 %s をワーカースレッドにスケジュールできません。サイズ %lu が slave_pending_jobs_size_max の %lu を超えているためです。

    ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX は 5.6.12 で導入されました。

  • エラー: 1865 SQLSTATE: HY000 (ER_INNODB_NO_FT_USES_PARSER)

    メッセージ: InnoDB テーブルに対して CREATE FULLTEXT INDEX WITH PARSER は実行できません

    ER_INNODB_NO_FT_USES_PARSER は 5.6.12 で導入されました。

  • エラー: 1866 SQLSTATE: HY000 (ER_BINLOG_LOGICAL_CORRUPTION)

    メッセージ: バイナリログファイル '%s' は論理的に破損しています: %s

    ER_BINLOG_LOGICAL_CORRUPTION は 5.6.12 で導入されました。

  • エラー: 1867 SQLSTATE: HY000 (ER_WARN_PURGE_LOG_IN_USE)

    メッセージ: ファイル %s は %d スレッドによって読み取られていたため、パージされませんでした。%d ファイル (%d ファイル中) のみがパージされました。

    ER_WARN_PURGE_LOG_IN_USE は 5.6.12 で導入されました。

  • エラー: 1868 SQLSTATE: HY000 (ER_WARN_PURGE_LOG_IS_ACTIVE)

    メッセージ: ファイル %s はアクティブなログファイルであるため、パージされませんでした。

    ER_WARN_PURGE_LOG_IS_ACTIVE は 5.6.12 で導入されました。

  • エラー: 1869 SQLSTATE: HY000 (ER_AUTO_INCREMENT_CONFLICT)

    メッセージ: UPDATE の自動インクリメント値が、内部で生成された値と競合しています

    ER_AUTO_INCREMENT_CONFLICT は 5.6.12 で導入されました。

  • エラー: 1870 SQLSTATE: HY000 (WARN_ON_BLOCKHOLE_IN_RBR)

    メッセージ: BLACKHOLE テーブルを行フォーマットで変更する %s ステートメントについて、行イベントはログに記録されませんでした。テーブル: '%s'

    WARN_ON_BLOCKHOLE_IN_RBR は 5.6.12 で導入されました。

  • エラー: 1871 SQLSTATE: HY000 (ER_SLAVE_MI_INIT_REPOSITORY)

    メッセージ: スレーブがリポジトリからのマスター情報構造体の初期化に失敗しました

    ER_SLAVE_MI_INIT_REPOSITORY は 5.6.12 で導入されました。

  • エラー: 1872 SQLSTATE: HY000 (ER_SLAVE_RLI_INIT_REPOSITORY)

    メッセージ: スレーブがリポジトリからのリレーログ情報構造体の初期化に失敗しました

    ER_SLAVE_RLI_INIT_REPOSITORY は 5.6.12 で導入されました。

  • エラー: 1873 SQLSTATE: 28000 (ER_ACCESS_DENIED_CHANGE_USER_ERROR)

    メッセージ: ユーザー '%s'@'%s' (使用したパスワード: %s) に変更しようとして、アクセスを拒否されました。切断します。

    ER_ACCESS_DENIED_CHANGE_USER_ERROR は 5.6.13 で導入されました。

  • エラー: 1874 SQLSTATE: HY000 (ER_INNODB_READ_ONLY)

    メッセージ: InnoDB は読み取り専用モードです。

    ER_INNODB_READ_ONLY は 5.6.13 で導入されました。

  • エラー: 1875 SQLSTATE: HY000 (ER_STOP_SLAVE_SQL_THREAD_TIMEOUT)

    メッセージ: STOP SLAVE コマンドの実行は完了していません: スレーブ SQL スレッドが停止シグナルを受け取りました。スレッドがビジー状態です。現在のタスクが完了したあとに SQL スレッドが停止します。

    ER_STOP_SLAVE_SQL_THREAD_TIMEOUT は 5.6.13 で導入されました。

  • エラー: 1876 SQLSTATE: HY000 (ER_STOP_SLAVE_IO_THREAD_TIMEOUT)

    メッセージ: STOP SLAVE コマンドの実行は完了していません: スレーブ IO スレッドが停止シグナルを受け取りました。スレッドがビジー状態です。現在のタスクが完了したあとに IO スレッドが停止します。

    ER_STOP_SLAVE_IO_THREAD_TIMEOUT は 5.6.13 で導入されました。

  • エラー: 1877 SQLSTATE: HY000 (ER_TABLE_CORRUPT)

    メッセージ: 操作を実行できません。テーブル '%s.%s' が存在しないか、破損しているか、不良なデータが含まれています。

    ER_TABLE_CORRUPT は 5.6.14 で導入されました。

  • エラー: 1878 SQLSTATE: HY000 (ER_TEMP_FILE_WRITE_FAILURE)

    メッセージ: 一時ファイルへの書き込みに失敗しました。

    ER_TEMP_FILE_WRITE_FAILURE は 5.6.15 で導入されました。

  • エラー: 1879 SQLSTATE: HY000 (ER_INNODB_FT_AUX_NOT_HEX_ID)

    メッセージ: インデックス名のアップグレードに失敗しました。CREATE INDEX (ALTER TABLE) ALGORITHM COPY を使用してインデックスを再構築してください。

    ER_INNODB_FT_AUX_NOT_HEX_ID は 5.6.16 で導入されました。

  • エラー: 1880 SQLSTATE: HY000 (ER_OLD_TEMPORALS_UPGRADED)

    メッセージ: 古い形式の TIME/TIMESTAMP/DATETIME カラムが、新しい形式にアップグレードされました。

    ER_OLD_TEMPORALS_UPGRADED は 5.6.16 で導入されました。

  • エラー: 1881 SQLSTATE: HY000 (ER_INNODB_FORCED_RECOVERY)

    メッセージ: innodb_forced_recovery > 0 である場合、操作は許可されません。

    ER_INNODB_FORCED_RECOVERY は 5.6.16 で導入されました。

  • エラー: 1882 SQLSTATE: HY000 (ER_AES_INVALID_IV)

    メッセージ: %s に指定された初期化ベクトルが短すぎます。少なくとも %d バイト以上である必要があります

    ER_AES_INVALID_IV は 5.6.17 で導入されました。

  • エラー: 1883 SQLSTATE: HY000 (ER_PLUGIN_CANNOT_BE_UNINSTALLED)

    メッセージ: 現在、プラグイン '%s' をアンインストールできません。%s

    ER_PLUGIN_CANNOT_BE_UNINSTALLED は 5.6.20 で導入されました。

  • エラー: 1884 SQLSTATE: HY000 (ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_GTID_GROUP)

    メッセージ: ステートメントを実行できません。複数のステートメントとしてバイナリログに書き込む必要があり、これは @@SESSION.GTID_NEXT == 'UUID:NUMBER' の場合は許可されないためです。

    ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_GTID_GROUP は 5.6.20 で導入されました。

  • エラー: 1885 SQLSTATE: HY000 (ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER)

    メッセージ: スレーブにマスターよりも多い GTID があります。マスターの SERVER_UUID を使用します。これは、バイナリログの終わりが切り捨てられたか、最後のバイナリログファイルが失われたことを示している可能性があります。たとえば、sync_binlog != 1 のときに、電源またはディスクの障害が発生したあとの状態です。スレーブにすでにレプリケートされたトランザクションを、マスターがロールバックしている場合としていない場合があります。マスターによってスレーブからマスターにロールバックされたトランザクションをレプリケートし、マスター上の空のトランザクションをコミットして、マスターでコミットされたが GTID_EXECUTED に含められていないトランザクションを反映させることをお勧めします。

    ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER は 5.6.23 で導入されました。

B.4 クライアントのエラーコードおよびメッセージ

クライアントのエラー情報では、次のソースファイルが使用されています。

  • 括弧内のエラー値およびシンボルは、MySQL ソースファイル (include/errmsg.h) の定義に対応しています。

  • メッセージ値は、libmysql/errmsg.c ファイルに一覧表示されているエラーメッセージに対応しています。%d および %s は数字および文字列をそれぞれ表しており、表示されるときにメッセージに置換されます。

更新は頻繁に行われるため、ここに一覧表示されていない追加のエラー情報がこれらのファイルに含まれている可能性があります。

  • エラー: 2000 (CR_UNKNOWN_ERROR)

    メッセージ: 不明な MySQL エラー

  • エラー: 2001 (CR_SOCKET_CREATE_ERROR)

    メッセージ: UNIX のソケット (%d) を作成できません

  • エラー: 2002 (CR_CONNECTION_ERROR)

    メッセージ: ソケット '%s' (%d) を使用してローカルの MySQL Server に接続できません

  • エラー: 2003 (CR_CONN_HOST_ERROR)

    メッセージ: '%s' (%d) の MySQL Server に接続できません

  • エラー: 2004 (CR_IPSOCK_ERROR)

    メッセージ: TCP/IP ソケット (%d) を作成できません

  • エラー: 2005 (CR_UNKNOWN_HOST)

    メッセージ: 不明な MySQL Server ホスト '%s' (%d)

  • エラー: 2006 (CR_SERVER_GONE_ERROR)

    メッセージ: MySQL Server が存在しなくなりました

  • エラー: 2007 (CR_VERSION_ERROR)

    メッセージ: プロトコルの不一致。サーバーのバージョン = %d、クライアントのバージョン = %d

  • エラー: 2008 (CR_OUT_OF_MEMORY)

    メッセージ: MySQL クライアントに空きメモリーがありません

  • エラー: 2009 (CR_WRONG_HOST_INFO)

    メッセージ: 間違ったホスト情報

  • エラー: 2010 (CR_LOCALHOST_CONNECTION)

    メッセージ: UNIX ソケット経由の Localhost

  • エラー: 2011 (CR_TCP_CONNECTION)

    メッセージ: TCP/IP 経由の %s

  • エラー: 2012 (CR_SERVER_HANDSHAKE_ERR)

    メッセージ: サーバーのハンドシェイクでエラーが発生しました

  • エラー: 2013 (CR_SERVER_LOST)

    メッセージ: クエリー中に MySQL Server への接続が失われました

  • エラー: 2014 (CR_COMMANDS_OUT_OF_SYNC)

    メッセージ: コマンドは同期されていません。このコマンドは現在実行できません

  • エラー: 2015 (CR_NAMEDPIPE_CONNECTION)

    メッセージ: 名前付きパイプ: %s

  • エラー: 2016 (CR_NAMEDPIPEWAIT_ERROR)

    メッセージ: ホストへの名前付きパイプを待機できません。ホスト: %s パイプ: %s (%lu)

  • エラー: 2017 (CR_NAMEDPIPEOPEN_ERROR)

    メッセージ: ホストへの名前付きパイプをオープンできません。ホスト: %s パイプ: %s (%lu)

  • エラー: 2018 (CR_NAMEDPIPESETSTATE_ERROR)

    メッセージ: ホストへの名前付きパイプの状態を設定できません。ホスト: %s パイプ: %s (%lu)

  • エラー: 2019 (CR_CANT_READ_CHARSET)

    メッセージ: 文字セット %s を初期化できません (パス: %s)

  • エラー: 2020 (CR_NET_PACKET_TOO_LARGE)

    メッセージ: 'max_allowed_packet' バイトより大きいパケットを受け取りました

  • エラー: 2021 (CR_EMBEDDED_CONNECTION)

    メッセージ: 組み込みサーバー

  • エラー: 2022 (CR_PROBE_SLAVE_STATUS)

    メッセージ: SHOW SLAVE STATUS でエラーが発生しました。

  • エラー: 2023 (CR_PROBE_SLAVE_HOSTS)

    メッセージ: SHOW SLAVE HOSTS でエラーが発生しました。

  • エラー: 2024 (CR_PROBE_SLAVE_CONNECT)

    メッセージ: スレーブへの接続でエラーが発生しました。

  • エラー: 2025 (CR_PROBE_MASTER_CONNECT)

    メッセージ: マスターへの接続でエラーが発生しました。

  • エラー: 2026 (CR_SSL_CONNECTION_ERROR)

    メッセージ: SSL 接続エラー: %s

  • エラー: 2027 (CR_MALFORMED_PACKET)

    メッセージ: 誤った形式のパケット

  • エラー: 2028 (CR_WRONG_LICENSE)

    メッセージ: このクライアントライブラリは、'%s' ライセンスを持つ MySQL Server で使用するためにのみライセンス契約されています

  • エラー: 2029 (CR_NULL_POINTER)

    メッセージ: ゼロポインタの使用方法が無効です

  • エラー: 2030 (CR_NO_PREPARE_STMT)

    メッセージ: ステートメントが準備されていません

  • エラー: 2031 (CR_PARAMS_NOT_BOUND)

    メッセージ: 準備済みステートメントのパラメータにデータが指定されていません

  • エラー: 2032 (CR_DATA_TRUNCATED)

    メッセージ: データが切り捨てられました

  • エラー: 2033 (CR_NO_PARAMETERS_EXISTS)

    メッセージ: ステートメントにパラメータが存在しません

  • エラー: 2034 (CR_INVALID_PARAMETER_NO)

    メッセージ: 無効なパラメータ数

  • エラー: 2035 (CR_INVALID_BUFFER_USE)

    メッセージ: 文字列/バイナリ以外のデータ型には長いデータを送信できません (パラメータ: %d)

  • エラー: 2036 (CR_UNSUPPORTED_PARAM_TYPE)

    メッセージ: サポートされていないバッファータイプを使用しています: %d (パラメータ: %d)

  • エラー: 2037 (CR_SHARED_MEMORY_CONNECTION)

    メッセージ: 共有メモリー: %s

  • エラー: 2038 (CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR)

    メッセージ: 共有メモリーをオープンできません。クライアントが要求イベント (%lu) を作成できませんでした

  • エラー: 2039 (CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR)

    メッセージ: 共有メモリーをオープンできません。サーバー (%lu) から応答イベントを受け取っていません

  • エラー: 2040 (CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR)

    メッセージ: 共有メモリーをオープンできません。サーバーがファイルマッピング (%lu) を割り当てできませんでした

  • エラー: 2041 (CR_SHARED_MEMORY_CONNECT_MAP_ERROR)

    メッセージ: 共有メモリーをオープンできません。サーバーがファイルマッピング (%lu) へのポインタを取得できませんでした

  • エラー: 2042 (CR_SHARED_MEMORY_FILE_MAP_ERROR)

    メッセージ: 共有メモリーをオープンできません。クライアントがファイルマッピング (%lu) を割り当てできませんでした

  • エラー: 2043 (CR_SHARED_MEMORY_MAP_ERROR)

    メッセージ: 共有メモリーをオープンできません。クライアントがファイルマッピング (%lu) へのポインタを取得できませんでした

  • エラー: 2044 (CR_SHARED_MEMORY_EVENT_ERROR)

    メッセージ: 共有メモリーをオープンできません。クライアントが %s イベント (%lu) を作成できませんでした

  • エラー: 2045 (CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR)

    メッセージ: 共有メモリーをオープンできません。サーバー (%lu) から応答がありません

  • エラー: 2046 (CR_SHARED_MEMORY_CONNECT_SET_ERROR)

    メッセージ: 共有メモリーをオープンできません。サーバー (%lu) に要求イベントを送信できません

  • エラー: 2047 (CR_CONN_UNKNOW_PROTOCOL)

    メッセージ: 間違ったプロトコルまたは不明なプロトコル

  • エラー: 2048 (CR_INVALID_CONN_HANDLE)

    メッセージ: 無効な接続ハンドル

  • エラー: 2049 (CR_SECURE_AUTH)

    メッセージ: 古い (4.1.1 より前) 認証プロトコルを使用した接続が拒否されました (クライアントオプション 'secure_auth' が有効にされています)

  • エラー: 2050 (CR_FETCH_CANCELED)

    メッセージ: 行の取得が mysql_stmt_close() 呼び出しによって取り消されました

  • エラー: 2051 (CR_NO_DATA)

    メッセージ: 最初に行をフェッチせずに、カラムを読み取ろうとしました

  • エラー: 2052 (CR_NO_STMT_METADATA)

    メッセージ: 準備済みステートメントにメタデータが含まれていません

  • エラー: 2053 (CR_NO_RESULT_SET)

    メッセージ: ステートメントに結果セットが関連付けられていない状態で、行を読み取ろうとしました

  • エラー: 2054 (CR_NOT_IMPLEMENTED)

    メッセージ: この機能はまだ実装されていません

  • エラー: 2055 (CR_SERVER_LOST_EXTENDED)

    メッセージ: '%s' の MySQL Server への接続が失われました。システムエラー: %d

  • エラー: 2056 (CR_STMT_CLOSED)

    メッセージ: 先行する %s() 呼び出しが原因で、ステートメントが間接的にクローズされました

  • エラー: 2057 (CR_NEW_STMT_METADATA)

    メッセージ: 結果セットのカラム数が、バインドされたバッファーの数と異なります。ステートメントをリセットして、結果セットのカラムを再度バインドし、ステートメントを再実行する必要があります

  • エラー: 2058 (CR_ALREADY_CONNECTED)

    メッセージ: このハンドルはすでに接続されています。各接続に個別のハンドルを使用してください。

  • エラー: 2059 (CR_AUTH_PLUGIN_CANNOT_LOAD)

    メッセージ: 認証プラグイン '%s' をロードできません: %s

    CR_AUTH_PLUGIN_CANNOT_LOAD は 5.6.1 で導入されました。

  • エラー: 2060 (CR_DUPLICATE_CONNECTION_ATTR)

    メッセージ: 同じ名前の属性がすでにあります

    CR_DUPLICATE_CONNECTION_ATTR は 5.6.6 で導入されました。

  • エラー: 2061 (CR_AUTH_PLUGIN_ERR)

    メッセージ: 認証プラグイン '%s' がエラーを報告しました: %s

    CR_AUTH_PLUGIN_ERR は 5.6.10 で導入されました。

B.5 問題および一般的なエラー

このセクションでは、発生する可能性がある一般的な問題およびエラーメッセージを一覧表示しています。問題の原因を判別する方法およびそれらを解決するための手順について説明しています。

B.5.1 問題の原因を判別する方法

問題が発生したときに最初にするべきことは、原因となっているプログラムまたはユニットを特定することです。

  • 次のいずれかの症状が発生している場合は、ハードウェアの問題 (メモリー、マザーボード、CPU、ハードディスクなど) またはカーネルの問題である可能性があります。

    • キーボードが動作しない。通常、これは Caps Lock キーを押すことによって確認できます。Caps Lock のランプが変わらない場合は、キーボードを交換する必要があります。(これを行う前に、コンピュータの再起動を試みて、キーボードのすべてのケーブルを確認する必要があります。)

    • マウスポインタが動かない。

    • リモートマシンからの ping にマシンが応答しない。

    • MySQL に関連しないその他のプログラムが正常に動作しない。

    • システムが突然再起動される。(ユーザーレベルの欠陥のあるプログラムがシステムを停止できないようにしてください。)

    この場合は、すべてのケーブルを確認し、診断ツールを実行してハードウェアをチェックすることから開始してください。問題を解決できる可能性があるオペレーティングシステムのパッチ、アップデート、またはサービスパックがあるかどうかも確認してください。すべてのライブラリ (glibc など) が最新であることも確認してください。

    メモリーの問題を早期に発見するために、ECC メモリーを持つマシンを使用することは良いことです。

  • キーボードがロックアップした場合は、別のマシンから自分のマシンにログインして kbd_mode -a を実行することによってリカバリできることがあります。

  • システムのログファイル (/var/log/messages または同様のログファイル) で問題の原因を調べてください。問題の原因が MySQL にあると思われる場合は、MySQL のログファイルも調べてください。セクション5.2「MySQL Server ログ」を参照してください。

  • ハードウェアに問題がないと思われる場合は、問題の原因となっているプログラムを見つけてください。topps、タスクマネージャー、または同様のプログラムを使用して、すべての CPU を使用しているプログラムまたはマシンをロックしているプログラムを確認します。

  • topdf、または同様のプログラムを使用して、メモリー、ディスク領域、ファイルディスクリプタ、またはその他の重要なリソースが不足しているかどうかを確認します。

  • 問題の原因が暴走したプロセスにある場合は、そのプロセスの強制終了を試みることができます。プロセスが停止しない場合は、オペレーティングシステムにバグがある可能性があります。

ほかのすべての可能性を検査して、MySQL サーバーまたは MySQL クライアントが問題の原因であると判断した場合は、メーリングリストまたはサポートチームに対してバグレポートを作成してください。バグレポートには、システムの動作、および発生している事象についての詳細な説明を含めてください。MySQL が問題の原因であると考える理由も記述してください。この章のすべての状況を考慮に入れてください。システムを検査したときの問題の状況を正確に記述します。プログラムおよびログファイルの出力やエラーメッセージをコピー&ペーストします。

動作していないプログラムおよびすべての症状について詳しく記述してください。システムが動作しないとのみ記述されたバグレポートを過去に多数受け取りました。これでは、問題の原因に関する情報が提供されません。

プログラムで障害が発生した場合は、次の情報を知ることが常に役に立ちます。

  • 問題のプログラムでセグメンテーション違反が発生したかどうか (コアがダンプされたかどうか)。

  • プログラムが使用可能なすべての CPU 時間を使用しているかどうか。top を使用して確認してください。プログラムをしばらく実行したままにしてみてください。計算の多い処理が行われているだけである可能性があります。

  • mysqld サーバーが問題の原因である場合は、mysqladmin -u root ping または mysqladmin -u root processlist で応答を取得できますか。

  • MySQL サーバーに接続しようとしたときに、クライアントプログラムはどのように動作しますか。(たとえば、mysql を実行します。)クライアントが動作しなくなりますか。プログラムから出力はありますか。

バグレポートを送信する場合は、セクション1.6「質問またはバグをレポートする方法」に説明されている手順に従ってください。

B.5.2 MySQL プログラム使用時の一般的なエラー

このセクションでは、MySQL プログラムを実行したときによく発生するエラーを一覧表示しています。問題はクライアントプログラムを実行しようとしたときに発生しますが、多くの問題の解決策では MySQL サーバーの構成を変更します。

B.5.2.1 アクセスは拒否されました

「アクセスは拒否されました」というエラーには多くの原因があります。多くの場合、問題はサーバーが接続時にクライアントプログラムに使用を許可する MySQL アカウントに関連しています。セクション6.2「MySQL アクセス権限システム」およびセクション6.2.7「アクセス拒否エラーの原因」を参照してください。

B.5.2.2 [ローカルの] MySQL サーバーに接続できません

UNIX 上の MySQL クライアントは mysqld サーバーに 2 つの方法で接続できます。UNIX ソケットファイルを使用してファイルシステム内のファイル (デフォルトは /tmp/mysql.sock) を介して接続するか、TCP/IP を使用してポート番号を介して接続します。UNIX ソケットファイルでの接続は TCP/IP よりも高速ですが、同じコンピュータ上にあるサーバーに接続するときにのみ使用できます。UNIX ソケットファイルは、ホスト名を指定しない場合、または特殊なホスト名 localhost を指定する場合に使用されます。

MySQL サーバーが Windows 上で実行されている場合は、TCP/IP を使用して接続できます。サーバーが --enable-named-pipe オプションを指定して起動されていて、サーバーが実行されているホスト上でクライアントを実行する場合は、名前付きパイプを使用して接続することもできます。デフォルトでは、名前付きパイプの名前は MySQL です。mysqld に接続するときにホスト名を指定しない場合、MySQL クライアントは最初に名前付きパイプに接続しようとします。接続できない場合は、TCP/IP ポートに接続します。Windows で名前付きパイプの使用を強制するには、ホスト名として . を使用します。

エラー (2002) 「... に接続できません」 は、通常、サーバーに接続しようとしたときに、システムで MySQL サーバーが実行されていなかったこと、あるいは間違った UNIX ソケットファイル名または TCP/IP ポート番号を使用していることを意味しています。使用している TCP/IP ポートがファイアウォールまたはポートブロックサービスによってブロックされていないことも確認してください。

エラー (2003) 「'server' の MySQL サーバーに接続できません (10061)」 は、ネットワーク接続が拒否されたことを示しています。MySQL サーバーが実行されていること、ネットワーク接続が有効にされていること、および指定したネットワークポートがサーバーに構成されていることを確認してください。

サーバーのホストで mysqld という名前のプロセスが実行されているかどうかを確認することから始めます。(UNIX では ps xa | grep mysqld、Windows ではタスクマネージャーを使用します。)プロセスがない場合は、サーバーを起動してください。セクション2.10.1.3「MySQL サーバーの起動とトラブルシューティング」を参照してください。

mysqld プロセスが実行されている場合は、次のコマンドを使用してチェックできます。ポート番号または UNIX ソケットファイル名は、使用している環境では異なる場合があります。host_ip は、サーバーが実行されているマシンの IP アドレスを表しています。

shell> mysqladmin versionshell> mysqladmin variablesshell> mysqladmin -h `hostname` version variablesshell> mysqladmin -h `hostname` --port=3306 versionshell> mysqladmin -h host_ip versionshell> mysqladmin --protocol=SOCKET --socket=/tmp/mysql.sock version

hostname コマンドでは通常の引用符ではなく逆引用符が使用されています。これにより、hostname の出力 (つまり、現在のホスト名) が mysqladmin コマンドに渡されます。hostname コマンドがないか、Windows 上で実行している場合は、-h オプションに続けて、マシンのホスト名を手動で入力できます (逆引用符なし)。-h 127.0.0.1 を使用して、TCP/IP でローカルホストへの接続を試みることもできます。

サーバーがネットワーク接続を無視するように構成されていないこと、または (リモート側から接続しようとする場合に) サーバーのネットワークインタフェース上でローカル側でのみ待機するように構成されていないことを確認します。サーバーが --skip-networking を指定して起動された場合、サーバーは TCP/IP 接続を受け入れません。サーバーが --bind-address=127.0.0.1 を指定して起動された場合、サーバーはローカルのループバックインタフェース上でのみ TCP/IP 接続を待機するためリモート接続を受け入れません。

ファイアウォールが MySQL へのアクセスをブロックしていないか確認します。ファイアウォールは、実行中のアプリケーションまたは MySQL によって通信用に使用されるポート番号 (デフォルトは 3306) を基準として構成されることがあります。Linux または Unix の場合、IP テーブル (または同様の機能の) 構成を調べてポートがブロックされていないことを確認します。Windows の場合、ZoneAlarm や Windows XP パーソナルファイアウォールなどのアプリケーションが MySQL ポートをブロックしないようにこれらを構成することが必要な場合があります。

「ローカルの MySQL サーバーに接続できません」というエラーが発生する可能性があるいくつかの原因を次に示します。

  • mysqld がローカルホストで実行されていない。オペレーティングシステムのプロセスリストをチェックして、mysqld プロセスが存在することを確認します。

  • 多数の TCP/IP 接続がある Windows 上で MySQL サーバーを実行している。クライアントで頻繁にそのエラーが発生している場合は、セクションB.5.2.2.1「Windows で MySQL サーバーへの接続に失敗する」に回避策があります。

  • mysqld が使用する UNIX ソケットファイル (デフォルトでは /tmp/mysql.sock) をほかのユーザーが削除した。たとえば、/tmp ディレクトリから古いファイルを削除する cron ジョブがある可能性があります。mysqladmin version を実行すると、mysqladmin が使用する UNIX ソケットファイルが実際に存在するかどうかを確認できます。この場合の対処方法は、mysql.sock を削除しないように cron ジョブを変更するか、ソケットファイルを別の場所に配置することです。セクションB.5.4.5「MySQL の UNIX ソケットファイルを保護または変更する方法」を参照してください。

  • --socket=/path/to/socket オプションを指定して mysqld サーバーを起動したが、クライアントプログラムにソケットファイルの新しい名前を指定し忘れた。サーバーのソケットパス名を変更したら、MySQL クライアントにも通知する必要があります。これを行うには、クライアントプログラムを実行するときに同じ --socket オプションを指定します。mysql.sock ファイルにアクセスするための権限がクライアントにあることも確認する必要があります。ソケットファイルがある場所を見つけるには、次のコマンドを実行します。

    shell> netstat -ln | grep mysql

    セクションB.5.4.5「MySQL の UNIX ソケットファイルを保護または変更する方法」を参照してください。

  • Linux を使用していて、1 つのサーバースレッドが停止した (コアがダンプされた)。この場合は、MySQL サーバーを再起動する前に、ほかの mysqld スレッドを強制終了する (たとえば、kill を使用します) 必要があります。セクションB.5.4.2「MySQL が繰り返しクラッシュする場合の対処方法」を参照してください。

  • UNIX ソケットファイルが保持されているディレクトリまたはソケットファイル自体に対する適切なアクセス権限が、サーバーまたはクライアントプログラムにない可能性がある。この場合は、ディレクトリまたはソケットファイルのアクセス権限を変更して、サーバーおよびクライアントがそれらにアクセスできるようにするか、サーバーがソケットファイルを作成でき、クライアントプログラムがアクセスできるディレクトリのソケットファイル名を指定する --socket オプションを指定して mysqld を再起動します。

「some_host 上の MySQL サーバーに接続できません」というエラーメッセージが表示された場合は、次のことを行なって問題の原因を見つけてください。

  • telnet some_host 3306 を実行して Enter キーを何度か押すことによって、サーバーがそのホスト上で実行されているかどうかを確認します (3306 は MySQL のデフォルトのポート番号です。サーバーが別のポートで待機している場合は、値を変更します。)MySQL サーバーが実行されていて、そのポートで待機している場合は、サーバーのバージョン番号を含む応答を受け取ります。「telnet: リモートホストに接続できません: 接続は拒否されました」などのエラーを受け取った場合、指定したポートでサーバーは実行されていません。

  • サーバーがローカルホストで実行されている場合は、mysqladmin -h localhost variables を使用して UNIX ソケットファイルを使用して接続することを試みてください。サーバーが待機するように構成されている TCP/IP ポート番号を確認します (これは port 変数の値です。)

  • Linux 上で実行していて、Security-Enhanced Linux (SELinux) が有効にされている場合は、mysqld プロセスに対して SELinux の保護が無効にされていることを確認します。

B.5.2.2.1 Windows で MySQL サーバーへの接続に失敗する

多数の TCP/IP 接続のある Windows 上で MySQL サーバーを実行していて、「MySQL サーバーに接続できません」というエラーが頻繁に発生している場合は、それらの接続に対応するための十分なエフェメラル (一時的な) ポートを Windows が許可していないことが原因である可能性があります。

TIME_WAIT の目的は、接続が閉じられたあとでも、接続がパケットを受け入れるようにすることです。これは、インターネットのルーティングによってパケットに低速なルートが割り当てられ、双方がクローズに同意したあとにパケットが受信されることがあるためです。そのポートが新しい接続に使用された場合は、古い接続からのパケットによってプロトコルが断絶したり、元の接続からの個人情報が漏えいしたりすることがあります。TIME_WAIT による遅延は、それらの遅延したパケットを受信するために一定の時間を猶予してからポートが再使用されるようにすることによってこれを防ぎます。

LAN 接続では、距離と遅延が比較的に大きいインターネットとは異なり、パケットが大きく遅延して受信されることはほとんどないため、TIME_WAIT を大幅に減らしたほうが安全です。

Windows はエフェメラル (一時的な) TCP ポートをユーザーに許可しています。ポートが閉じられると、TIME_WAIT ステータスとして 120 秒間維持されます。ポートは、この時間が経過するまで再び使用可能になりません。ポート番号のデフォルトの範囲は、Windows のバージョンによって異なります。古いバージョンではポートの数がより制限されます。

  • Windows Server 2003 まで: 1025–5000 の範囲のポート

  • Windows Vista、Server 2008 以降: 49152–65535 の範囲のポート

使用可能な TCP ポートが少なく (5000)、TIME_WAIT ステータスで多数の TCP ポートが短い期間にオープンおよびクローズされると、ポートが不足する可能性が高くなります。この問題に対処する方法は 2 つあります。

  • 原因となっている可能性のある接続プールまたは永続的な接続を調査することによって、急速に消費される TCP ポートの数を減らします

  • Windows レジストリのいくつかの設定をチューニングします (次の手順を参照してください)

重要: 次の手順では Windows のレジストリを変更しています。レジストリを変更する前にバックアップを取得し、問題が発生したときにレジストリを復旧する方法を理解してください。レジストリをバックアップ、復旧、および編集する方法については、Microsoft サポート技術情報の記事 (http://support.microsoft.com/kb/256986/EN-US/) を参照してください。

  1. レジストリエディタ (Regedt32.exe) を開始します。

  2. レジストリの次のキーを見つけます。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  3. 「編集」メニューで、「値の追加」をクリックして次のレジストリ値を追加します。

    Value Name: MaxUserPort
    Data Type: REG_DWORD
    Value: 65534

    これにより、ユーザーが使用できるエフェメラルポートの番号が設定されます。有効な範囲は 5000 から 65534 (10 進数) までです。デフォルト値は 0x1388 (10 進数の 5000) です。

  4. 「編集」メニューで、「値の追加」をクリックして次のレジストリ値を追加します。

    Value Name: TcpTimedWaitDelay
    Data Type: REG_DWORD
    Value: 30

    これにより、閉じる前に TIME_WAIT 状態で TCP ポートの接続を保持する秒数が設定されます。有効な範囲は 0 (ゼロ) から 300 (10 進数) までです。デフォルト値は 0x78 (10 進数の 120) です。

  5. レジストリエディタを終了します。

  6. マシンをリブートします。

注意: 前述した設定を元に戻すには、作成したレジストリのエントリを削除します。

B.5.2.3 MySQL サーバーへの接続が失われました

このエラーメッセージには 3 つの原因が考えられます。

通常、これはネットワーク接続の問題を示しており、このエラーが頻繁に発生する場合は、ネットワークの状態を確認してください。エラーメッセージにクエリー中が含まれている場合、発生している問題はこれに該当する可能性があります。

クエリー中の状態は、1 つ以上のクエリーの一部として数百万件の行が送信されているときに発生することがあります。この問題が発生していることがわかった場合は、net_read_timeout をデフォルトの 30 秒から 60 秒またはデータ転送が完了するのに十分な時間に増やすことを試みてください。

まれに、クライアントがサーバーに初期接続を試みるときに発生することがあります。この場合、connect_timeout 値の設定が数秒であるときは、10 秒 (距離が非常に遠い場合、または低速な接続の場合はさらに長く) に増やすことによって、この問題を解決できることがあります。より一般的ではない原因によってこの問題が発生しているかどうかを判別するには、SHOW GLOBAL STATUS LIKE 'Aborted_connects' を使用します。これは、各初期接続の試行をサーバーが中止するたびに 1 が加算されます。エラーメッセージの一部として認証パケットを読み込んでいますが表示されることがあります。その場合も、必要となる解決策がこの方法であることを示しています。

前述の原因ではない場合は、一部のクライアントで発生することがある max_allowed_packet より大きい BLOB 値に関する問題が発生している可能性があります。ER_NET_PACKET_TOO_LARGE エラーが発生することがありますが、それは max_allowed_packet を増やす必要があることを示しています。

B.5.2.4 クライアントは認証プロトコルに対応できません

認証プロトコルの現在の実装は、古い (4.1 より前) クライアントによって使用されるアルゴリズムと互換性がないパスワードハッシュアルゴリズムを使用しています。古いクライアントを使用して 4.1 以降のサーバーに接続しようとすると、次のメッセージが表示されて失敗することがあります。

shell> mysqlClient does not support authentication protocol requested
by server; consider upgrading MySQL client

この問題に対処する場合、推奨される解決方法はすべてのクライアントプログラムをアップグレードして、4.1.1 以降のクライアントライブラリが使用されるようにすることです。これを行うことができない場合は、次のいずれかの方法を使用します。

  • 4.1 より前のクライアントプログラムを使用してサーバーに接続する場合に、4.1 より前のスタイルのパスワードを持つアカウントを使用します。

  • 4.1 より前のクライアントプログラムを使用する必要がある各ユーザーのパスワードを 4.1 より前のスタイルにリセットします。これは、SET PASSWORD ステートメントおよび OLD_PASSWORD() 関数を使用して行うことができます。MySQL 5.6.6 の時点では、アカウントの認証プラグインが mysql_old_password であることも最初に確認する必要があります。

    mysql> UPDATE mysql.user SET plugin = 'mysql_old_password'mysql> WHERE User = 'some_user' AND Host = 'some_host';mysql> FLUSH PRIVILEGES;mysql> SET PASSWORD FOR -> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

    上記の例では、newpwd を使用するパスワードに置き換えます。MySQL は元のパスワードを教えることはできないため、新しいパスワードを指定する必要があります。

  • 古いパスワードハッシュアルゴリズムをデフォルトで使用することをサーバーに通知します。

    1. old_passwords システム変数に 1 を設定して、mysqld を起動します。

    2. 長い 4.1 形式のパスワードにアップデートされた各アカウントに、古い形式のパスワードを割り当てます。これらのアカウントは次のクエリーを使用して識別できます。

      mysql> SELECT Host, User, Password FROM mysql.user -> WHERE LENGTH(Password) > 16;

      そのクエリーによって表示された各アカウントレコードについて、Host 値および User 値を使用し、前述したいずれかの方法を使用してパスワードを割り当てます。

「クライアントは認証プロトコルに対応できません」というエラーは、複数のバージョンの MySQL がインストールされているが、クライアントプログラムが動的にリンクされ、古いライブラリにリンクされる場合にも発生することがあります。クライアントが互換性のある最新のライブラリバージョンを使用していることを確認してください。これを行う手順はシステムによって異なります。

注記

PHP の mysql 拡張は、MySQL 4.1.1 以降の認証プロトコルをサポートしていません。これは使用している PHP バージョンに関係なく当てはまります。mysql 拡張を MySQL 4.1 以降とともに使用する場合は、古いクライアントとともに動作するように MySQL を構成するために、前述のいずれかの方法を使用する必要があることがあります。mysqli 拡張 (PHP 5 で追加された「MySQL Improved」を意味します) は MySQL 4.1 以降で採用されている改善されたパスワードハッシュと互換性があり、この MySQL クライアントライブラリを使用するために MySQL で特別な構成を行う必要はありません。mysqli 拡張については、http://php.net/mysqliを参照してください。

パスワードハッシュおよび認証の背景情報については、セクション6.1.2.4「MySQL でのパスワードハッシュ」を参照してください。

B.5.2.5 パスワードをインタラクティブに入力すると失敗する

--password オプションまたは -p オプションをパスワード値を指定せずに使用して起動すると、MySQL クライアントプログラムはパスワードの入力を求めます。

shell> mysql -u user_name -pEnter password:

一部のシステムでは、オプションファイルまたはコマンド行で指定するとパスワードが機能するが、Enter password: プロンプトでインタラクティブに入力すると機能しないことがあります。これは、パスワードを読み取るためにシステムによって提供されたライブラリが、パスワード値を少ない文字数 (通常、8 文字) に制限したときに発生します。これはシステムライブラリの問題であり、MySQL の問題ではありません。これを回避するには、MySQL のパスワードを 8 文字以下の値に変更するか、パスワードをオプションファイルに格納します。

B.5.2.6 ホスト 'host_name' は拒否されました

次のエラーが発生する場合は、mysqld が途中で中断された多数の接続要求を特定のホストから受け取ったことを意味します。

Host 'host_name' is blocked because of many connection errors.
Unblock with 'mysqladmin flush-hosts'

max_connect_errors システム変数の値は、連続して接続要求が中断された場合にそれを許可する回数を決定します。(セクション5.1.4「サーバーシステム変数」を参照してください。)接続が成功せずに max_connect_errors 回要求が失敗すると、mysqld は何らかの問題があると見なし (たとえば、何者かが侵入しようとしている)、FLUSH HOSTS ステートメントを発行するか、mysqladmin flush-hosts コマンドを実行するまで、そのホストが接続できないようにします。

デフォルトでは、mysqld は接続エラーが 100 回発生したあとにホストをブロックします (MySQL 5.6.6 より前では 10 回)。この値を調整するには、サーバーの起動時に max_connect_errors を設定します。

shell> mysqld_safe --max_connect_errors=10000 &

この値は実行時にも設定できます。

mysql> SET GLOBAL max_connect_errors=10000;

特定のホストで「ホスト 'host_name' は拒否されました」というエラーメッセージが表示される場合は、そのホストからの TCP/IP 接続に問題がないことを最初に確認してください。ネットワークに問題がある場合は、max_connect_errors 変数の値を増やしても意味はありません。

B.5.2.7 接続が多すぎます

mysqld サーバーに接続しようとしたときに「接続が多すぎます」というエラーが表示される場合は、使用可能なすべての接続がほかのクライアントによって使用されていることを意味します。

許可される接続数は、max_connections システム変数によって制御されます。デフォルト値は、MySQL が Apache Web サーバーとともに使用された場合にパフォーマンスを向上させるために 151 です。(以前のデフォルトは 100 でした。)より多くの接続をサポートする必要がある場合は、この変数により大きい値を設定してください。

mysqld は実際には max_connections+1 クライアントの接続を許可します。余分な接続は、SUPER 権限を持つアカウントが使用するために予約されています。SUPER 権限を管理者に付与して、通常のユーザー (その権限の必要のないユーザー) に付与しないことによって、権限のないクライアントが最大数接続されていても、管理者はサーバーに接続して SHOW PROCESSLIST を使用し、問題を診断することができます。セクション13.7.5.30「SHOW PROCESSLIST 構文」を参照してください。

MySQL がサポートできる接続の最大数は、対象となるプラットフォームのスレッドライブラリの品質、使用可能な RAM の量、各接続で使用される RAM の量、各接続からのワークロード、および望ましい応答時間によって異なります。Linux または Solaris は、通常、500 から 1000 の同時接続をサポートでき、使用可能な RAM が数ギガバイトあり、各接続からのワークロードが少なく、応答時間の目標が厳しくない場合は、10,000 接続をサポートできます。Windows では、そのプラットフォームで使用されている POSIX 互換レイヤーのために、(オープンしているテーブル × 2 + オープンしている接続) < 2048 に制限されています。

open-files-limit を増やすことが必要となる可能性があります。MySQL が使用できるハンドル数に関するオペレーティングシステムの制限を緩和する方法については、セクション2.5「Linux に MySQL をインストールする」も参照してください。

B.5.2.8 メモリー不足

mysql クライアントプログラムを使用してクエリーを発行し、次のようなエラーを受け取った場合は、mysql にクエリーの結果全体を格納するための十分なメモリーがないことを意味しています。

mysql: Out of memory at line 42, 'malloc.c'
mysql: needed 8136 byte (8k), memory in use: 12481367 bytes (12189k)
ERROR 2008: MySQL client ran out of memory

この問題を解決するには、最初にクエリーが正しいかどうかを確認します。そのような多数の行が返されることが予想されるクエリーですか。そうではない場合は、クエリーを修正して再試行してください。予想される場合は、--quick オプションを指定して mysql を呼び出すことができます。これにより、mysql_use_result() C API 関数を使用して結果セットが取得されるようになり、クライアントへのロードが少なくなります (サーバーへのロードが増えます)。

B.5.2.9 MySQL サーバーが存在しなくなりました

このセクションでは、関連する「クエリー中にサーバーへの接続が失われました」というエラーについても説明します。

「MySQL サーバーが存在しなくなりました」というエラーのもっとも一般的な原因は、サーバーがタイムアウトして接続が閉じられた場合です。この場合は、通常、次のいずれかのエラーコードを受け取ります (受け取るエラーコードはオペレーティングシステムによって異なります)。

エラーコード説明
CR_SERVER_GONE_ERRORクライアントはサーバーに問い合わせを送信できませんでした。
CR_SERVER_LOSTクライアントはサーバーに書き込むときにエラーを受け取りませんでしたが、問い合わせに対する完全な応答 (または何らかの応答) が得られませんでした。

デフォルトでは、何も発生しなかった場合、サーバーは 8 時間後に接続を閉じます。この時間制限を変更するには、mysqld を起動するときに wait_timeout 変数を設定します。セクション5.1.4「サーバーシステム変数」を参照してください。

スクリプトがある場合、クライアントが自動再接続を行うには、クエリーを再発行する必要があるだけです。これは、クライアントの自動再接続を有効にしている (mysql コマンド行クライアントのデフォルト) ことが前提です。

「MySQL サーバーが存在しなくなりました」というエラーのほかの一般的な原因を次に示します。

  • ユーザー (またはデータベース管理者) が実行中のスレッドを KILL ステートメントまたは mysqladmin kill コマンドを使用して強制終了した。

  • サーバーへの接続を閉じたあとにクエリーを実行しようとした。これはアプリケーションの論理エラーを示しており、修正する必要があります。

  • 別のホスト上で実行されているクライアントアプリケーションに、そのホストから MySQL サーバーに接続するために必要な権限がない。

  • クライアント側で TCP/IP 接続がタイムアウトした。これは、コマンド mysql_options(..., MYSQL_OPT_READ_TIMEOUT,...) または mysql_options(..., MYSQL_OPT_WRITE_TIMEOUT,...) を使用している場合に発生することがあります。この場合は、タイムアウト値を増やすと問題が解決されることがあります。

  • サーバー側でタイムアウトが発生し、クライアントの自動再接続が無効にされている (MYSQL 構造体の reconnect フラグが 0 と等しい)。

  • Windows クライアントを使用していて、コマンドが発行される前にサーバーによって接続がドロップされた (おそらく wait_timeout が期限切れになったため)。

    Windows での問題は、TCP/IP 接続をサーバーに書き込むときに MySQL が OS からエラーを受け取らず、接続から応答を読み取ろうとしたときにエラーを受け取ることです。

    この問題の解決策は、最後のクエリーから長い時間がたっている場合に接続に対して mysql_ping() を実行するか (これは Connector/ODBC が行なっていることです)、mysqld サーバーで wait_timeout に事実上タイムアウトすることがないような高い値を設定することです。

  • 間違ったクエリーまたは長すぎるクエリーをサーバーに送信した場合にも、これらのエラーを受け取ることがあります。mysqld が長すぎるパケットまたは順序が間違っているパケットを受け取ると、クライアントで何らかの問題が発生していると見なして、接続を閉じます。大きなクエリーが必要な場合 (たとえば、大きな BLOB カラムを操作している場合)、クエリーの制限を緩和するには、サーバーの max_allowed_packet 変数 (デフォルト値は 1M バイト) を設定します。クライアント側の最大パケットサイズも増やす必要がある場合もあります。パケットサイズの設定については、セクションB.5.2.10「パケットが大きすぎます」を参照してください。

    多数の行を挿入する INSERT ステートメントまたは REPLACE ステートメントも、これらの種類のエラーの原因となることがあります。これらのステートメントのいずれかは、挿入される行数に関係なくサーバーに単一の要求を送信します。このため、1 つの INSERT または REPLACE で送信される行数を減らすことによって多くの場合エラーを防ぐことができます。

  • また、16M バイト以上のパケットを送信する場合に、クライアントが 4.0.8 より古く、サーバーが 4.0.8 以降であると (またはその逆の場合)、接続を失うことがあります。

  • ホスト名のルックアップが失敗した場合に、このエラーが発生することもあります (たとえば、サーバーまたはネットワークが依存する DNS サーバーが停止した場合)。これは、MySQL が名前解決についてホストシステムに依存しているが、それが動作しているかどうかは知ることができないためです。MySQL が認識している範囲では、この問題はほかのネットワークタイムアウトと区別が付きません。

    --skip-networking オプションを指定して MySQL が起動された場合に、「MySQL サーバーが存在しなくなりました」というエラーが表示されることもあります。

    MySQL のポート (デフォルトは 3306) がファイアウォールによってブロックされていて、MySQL サーバーへのすべての接続が遮断される場合、このエラーの原因となることがある別のネットワークの問題が発生します。

  • アプリケーションで複数の子プロセスがフォークされ、すべての子プロセスが MySQL サーバーへの同じ接続を使用しようとした場合に、このエラーが発生することもあります。これは、各子プロセスが個別の接続を使用することによって防ぐことができます。

  • クエリーの実行中にサーバーが停止するバグが発生した。

MySQL サーバーが停止して再起動されたかどうかを確認するには、mysqladmin version を実行してサーバーの稼働時間を検査します。mysqld がクラッシュして再起動されたためにクライアント接続が切断された場合は、そのクラッシュの原因を見つけることに集中してください。クエリーを再び発行するとサーバーが再び強制終了されるかどうかを確認することから始めます。セクションB.5.4.2「MySQL が繰り返しクラッシュする場合の対処方法」を参照してください。

接続の喪失に関する情報をさらに取得するには、--log-warnings=2 オプションを指定して mysqld を起動します。これにより、一部の切断に関するエラーが hostname.err ファイルに記録されます。セクション5.2.2「エラーログ」 を参照してください。

この問題に関するバグレポートを作成する場合は、次の情報を含めてください。

セクションB.5.2.11「通信エラーおよび中止された接続」およびセクション1.6「質問またはバグをレポートする方法」も参照してください。

B.5.2.10 パケットが大きすぎます

パケットは、MySQL サーバーに送信される単一の SQL ステートメント、クライアントに送信される単一の行、またはマスターレプリケーションサーバーからスレーブに送信されるバイナリログイベントです。

MySQL 5.6 Server およびクライアント間で転送可能なパケットの最大サイズは 1G バイトです。

MySQL クライアントまたは mysqld サーバーが max_allowed_packet バイトより大きいパケットを受け取ると、ER_NET_PACKET_TOO_LARGE エラーが発行され、接続が失われます。一部のクライアントでは、パケットが大きすぎる場合、「クエリー中に MySQL サーバーへの接続が失われました」というエラーを受け取ることもあります。

クライアントとサーバーの両方にそれぞれ max_allowed_packet 変数があるため、大きなパケットを処理する場合は、クライアントとサーバーの両方のこの変数を増やす必要があります。

mysql クライアントプログラムを使用している場合、max_allowed_packet 変数のデフォルトは 16M バイトです。大きな値を設定するには、mysql を次のように起動します。

shell> mysql --max_allowed_packet=32M

これにより、パケットサイズが 32M バイトに設定されます。

サーバーのデフォルトの max_allowed_packet 値は 1M バイトです。サーバーが大きなクエリーを処理する必要がある場合 (たとえば、大きい BLOB カラムを操作している場合) は、この値を増やすことができます。たとえば、この変数に 16M バイトを設定するには、サーバーを次のように起動します。

shell> mysqld --max_allowed_packet=16M

オプションファイルを使用して max_allowed_packet を設定することもできます。たとえば、サーバー側のサイズを 16M バイトに設定するには、次の行をオプションファイルに追加します。

[mysqld]
max_allowed_packet=16M

追加のメモリーは必要なときにのみ割り当てられるため、この変数の値を増やしておくと安全です。たとえば、mysqld が追加のメモリーを割り当てるのは、長いクエリーが発行された場合、またはmysqld が大きな結果行を返す必要がある場合のみです。この変数のデフォルト値が小さいのは、クライアントとサーバーの間の不正なパケットを捕捉するための予防措置であり、誤って大きなパケットが使用されてメモリー不足にならないようにするためでもあります。

大きい BLOB 値を使用しているが、そのクエリーを処理するための十分なメモリーへのアクセスを mysqld に与えていない場合にも、大きいパケットに関する予期しない問題が発生することがあります。これに当てはまると思われる場合は、mysqld_safe スクリプトの先頭に ulimit -d 256000 を追加して、mysqld を再起動してください。

B.5.2.11 通信エラーおよび中止された接続

通信エラー、中止された接続などの接続の問題が発生した場合は、次の情報ソースを使用して問題を診断してください。

--log-warnings オプションを指定してサーバーを起動した場合は、次のようなメッセージがエラーログに出力されることがあります。

010301 14:38:23 Aborted connection 854 to db:
'users' user: 'josh'

クライアントが正常に接続したが、その後不適切に切断または終了した場合、サーバーは Aborted_clients ステータス変数をインクリメントし、「接続が中止されました」というメッセージをエラーログに記録します。この原因は次のいずれかです。

  • クライアントプログラムが、終了する前に mysql_close() を呼び出さなかった。

  • クライアントが、サーバーに要求を発行せずに wait_timeout 秒または interactive_timeout 秒を超えてスリープしている。セクション5.1.4「サーバーシステム変数」を参照してください。

  • クライアントプログラムがデータ転送中に突然終了した。

クライアントも接続できない場合、サーバーは Aborted_connects ステータス変数をインクリメントします。接続の失敗は、次の原因で発生することがあります。

  • クライアントにデータベースへの接続権限がない。

  • クライアントが不正なパスワードを使用している。

  • パケットに正しい情報が含まれていない。

  • パケットの取得に connect_timeout 秒より長くかかる。セクション5.1.4「サーバーシステム変数」を参照してください。

これらのことが発生した場合は、何者かがサーバーに侵入しようとしていることを示している可能性があります。これらのタイプの問題に関するメッセージは、一般クエリーログに記録されます (有効にされている場合)。

中止されたクライアントまたは中止された接続に関する問題のその他の原因

  • max_allowed_packet 変数の値が小さすぎるか、クエリーが mysqld 用に割り当てられているメモリーより大きいメモリーの領域を要求した。セクションB.5.2.10「パケットが大きすぎます」を参照してください。

  • Linux で半二重および全二重の両方の Ethernet プロトコルが使用された。Linux の多くの Ethernet ドライバにはこのバグがあります。FTP を使用して、クライアントマシンとサーバーマシンの間で大きなファイルを転送することによって、このバグをテストしてください。転送がバースト-ポーズ-バースト-ポーズモードになる場合は、Linux の二重化シンドロームに陥っています。ネットワークカードとハブ/スイッチの二重化モードを全二重または半二重に切り替えて結果をテストし、最適な設定を判別します。

  • 読み取りで中断が発生するスレッドライブラリの問題。

  • 不適切に構成されている TCP/IP。

  • 障害のある Ethernet、ハブ、スイッチ、ケーブルなど。これは、ハードウェアを交換することによってのみ適切に診断できます。

セクションB.5.2.9「MySQL サーバーが存在しなくなりました」も参照してください。

B.5.2.12 テーブルが満杯です

テーブルが満杯であるというエラーが発生した場合は、ディスクが満杯であるか、テーブルが最大サイズに達した可能性があります。MySQL データベースの事実上の最大テーブルサイズは、通常、MySQL の内部制限ではなくオペレーティングシステムのファイルサイズに関する制約によって判断します。セクションD.10.3「テーブルサイズの制限」を参照してください。

B.5.2.13 ファイルを作成/書き込みできない

一部のクエリーで次のタイプのエラーを受け取る場合は、MySQL が一時ディレクトリに結果セットの一時ファイルを作成できないことを意味します。

Can't create/write to file '\\sqla3fe_0.ism'.

上記のエラーは Windows での一般的なメッセージです。UNIX のメッセージも似ています。

解決策の 1 つは、--tmpdir オプションを指定して mysqld を起動するか、オプションファイルの [mysqld] セクションにこのオプションを追加することです。たとえば、C:\temp ディレクトリを指定するには、次の行を使用します。

[mysqld]
tmpdir=C:/temp

C:\temp ディレクトリが存在していて、MySQL サーバーが書き込むための十分な領域がある必要があります。セクション4.2.6「オプションファイルの使用」を参照してください。

このエラーの別の原因は権限の問題です。MySQL サーバーが tmpdir ディレクトリに書き込めることを確認してください。

perror で表示されるエラーコードも確認します。サーバーがテーブルに書き込むことができない原因の 1 つは、ファイルシステムが満杯であるためです。

shell> perror 28OS error code 28: No space left on device

起動時に次のタイプのエラーを受け取る場合は、データファイルの格納に使用されるファイルシステムまたはディレクトリが書き込み保護されていることを示しています。書き込みエラーがテストファイルに対するものであれば、このエラーは重大ではなく、無視しても安全です。

Can't create test file /usr/local/mysql/data/master.lower-test

B.5.2.14 コマンドは同期されていません

クライアントのコードで「コマンドは同期されていません。このコマンドは現在実行できません」というメッセージを受け取る場合は、クライアント関数を間違った順序で呼び出しています。

たとえば、これは、mysql_free_result() を呼び出す前に、mysql_use_result() を使用して、新しいクエリーを実行しようとした場合に発生することがあります。これは、データを返す 2 つのクエリーの間に mysql_use_result() または mysql_store_result() を呼び出さずに実行した場合にも発生することがあります。

B.5.2.15 ユーザーを無視します

次のエラーが表示される場合は、mysqld が起動されたときまたは付与テーブルをリロードしたときに、user テーブルで不正なパスワードを持つアカウントが見つかったことを意味します。

ユーザー 'some_user'@'some_host' のパスワードが不正です。ユーザーを無視します

その結果、このアカウントは権限システムによって無視されます。

次のリストは、この問題の考えられる原因および解決策を示しています。

  • 新しいバージョンの mysqld を古い user テーブルとともに実行している可能性があります。これを確認するには、mysqlshow mysql user を実行して、Password カラムが 16 文字より短いかどうかをチェックします。短い場合、この状態を修正するには、scripts/add_long_password スクリプトを実行します。

  • アカウントのパスワードが古いパスワード (8 文字) です。user テーブルのアカウントを更新して、新しいパスワードを設定します。

  • PASSWORD() 関数を使用せずに user テーブルにパスワードが指定されました。mysql を使用し、user テーブルのアカウントを PASSWORD() 関数を使用して新しいパスワードで更新します。

    mysql> UPDATE user SET Password=PASSWORD('newpwd') -> WHERE User='some_user' AND Host='some_host';

B.5.2.16 表 'tbl_name' は存在しません

次のエラーが表示される場合は、通常、指定された名前のデフォルトデータベースにテーブルが存在しないことを意味します。

Table 'tbl_name' doesn't exist
Can't find file: 'tbl_name' (errno: 2)

テーブルは存在しているが、誤った名前で参照している場合もあります。

  • MySQL はディレクトリおよびファイルを使用してデータベースおよびテーブルを格納しているため、大文字/小文字が区別されるファイル名を持つファイルシステムにデータベースおよびテーブルがある場合は、データベース名およびテーブル名で大文字/小文字が区別されます。

  • Windows などの大文字/小文字が区別されないファイルシステムの場合でも、クエリー内の特定のテーブルへのすべての参照で同じ表記を使用する必要があります。

デフォルトデータベースにあるテーブルを確認するには、SHOW TABLES を使用します。セクション13.7.5「SHOW 構文」を参照してください。

B.5.2.17 文字セットを初期化できません

文字セットの問題がある場合は、次のようなエラーが表示されることがあります。

MySQL Connection Failed: Can't initialize character set charset_name

このエラーには次のいずれかの原因がある可能性があります。

  • 文字セットがマルチバイト文字セットであり、クライアントでその文字セットがサポートされていない。この場合は、-DDEFAULT_CHARSET=charset_name オプションまたは -DWITH_EXTRA_CHARSETS=charset_name オプションを指定して CMake を実行することによって、クライアントを再コンパイルする必要があります。セクション2.9.4「MySQL ソース構成オプション」を参照してください。

    標準のすべての MySQL バイナリは、すべてのマルチバイト文字セットがサポートされる -DWITH_EXTRA_CHARSETS=complex を指定してコンパイルされています。セクション2.9.4「MySQL ソース構成オプション」を参照してください。

  • 文字セットは mysqld にコンパイルされない単純な文字セットであり、文字セットの定義ファイルがクライアントが予期している場所にありません。

    この場合は、次のいずれかの方法を使用して問題を解決する必要があります。

    • その文字セットがサポートされるようにクライアントを再コンパイルします。セクション2.9.4「MySQL ソース構成オプション」を参照してください。

    • 文字セットの定義ファイルがあるディレクトリをクライアントに指定します。多くのクライアントでは、--character-sets-dir オプションを指定することによってこれを行うことができます。

    • 文字定義ファイルをクライアントが予期しているパスにコピーします。

B.5.2.18 'File' が見つかりません、および同様のエラー

MySQL から 「エラー '...' が見つかりません (エラー番号: 23)」「ファイル ... をオープンできません (エラー番号: 24)」、あるいは「エラー番号 23」または「エラー番号 24」のその他のエラーを受け取る場合は、MySQL サーバーに十分なファイルディスクリプタが割り当てられていないことを意味します。perror ユーティリティーを使用すると、エラー番号の意味の説明を取得できます。

shell> perror 23OS error code 23: File table overflow
shell> perror 24OS error code 24: Too many open files
shell> perror 11OS error code 11: Resource temporarily unavailable

ここでの問題は、mysqld が同時にオープンしたままにしようとしているファイルが多すぎることです。一度に多数のファイルをオープンしないように mysqld に通知するか、mysqld が使用できるファイルディスクリプタの数を増やします。

一度にオープンするファイル数を少なくするように mysqld に通知するには、table_open_cache システム変数の値 (デフォルト値は 64) を減らすことによってテーブルキャッシュを小さくします。セクション8.4.3.1「MySQL でのテーブルのオープンとクローズの方法」で説明されているように、状況によっては、サーバーがキャッシュサイズを一時的に拡張しようとする可能性があるため、これによってファイルディスクリプタの不足を完全に防ぐことはできません。max_connections の値を減らすことによっても、オープンファイルの数が減少します (デフォルト値は 100)。

mysqld が使用できるファイルディスクリプタの数を変更するには、mysqld_safe--open-files-limit オプションを使用するか、open_files_limit システム変数を設定します。セクション5.1.4「サーバーシステム変数」を参照してください。これらの値を設定するもっとも簡単な方法は、オプションファイルにオプションを追加することです。セクション4.2.6「オプションファイルの使用」を参照してください。オープンファイルの制限の設定をサポートしていない古いバージョンの mysqld を使用している場合は、mysqld_safe スクリプトを編集できます。このスクリプトには、コメントアウトされた行 ulimit -n 256 があります。# 文字を削除してこの行をコメント解除し、数字 256 を変更して、mysqld が使用できるファイルディスクリプタの数を設定します。

--open-files-limit および ulimit を使用すると、ファイルディスクリプタの数を増やすことができますが、オペレーティングシステムが課している制限が上限となります。mysqld_safe または mysqldroot として起動した場合にのみオーバーライドできる堅固な制限もあります (この場合、起動後に root として実行され続けないように、--user オプションを指定してサーバーを起動する必要もあります)。各プロセスで使用できるファイルディスクリプタの数に関するオペレーティングシステムの制限を緩める必要がある場合は、システムのドキュメントを参照してください。

注記

tcsh シェルを実行している場合、ulimit は機能しません。また、tcsh では、現在の制限を問い合わせたときに不正な値が報告されます。この場合は、sh を使用して mysqld_safe を起動してください。

B.5.2.19 テーブルの破損の問題

--myisam-recover-options を指定して mysqld を起動した場合、MySQL は「not closed properly」または「crashed」としてマークされている MyISAM テーブルを自動的にチェックして修復しようとします。これが発生した場合、MySQL は hostname.err ファイルに「警告: テーブル ... をチェックしています」と書き込み、テーブルを修復する必要がある場合は、「警告: テーブルを修復しています」がそのあとに書き込まれます。これらのエラーを多数受け取り、その直前に予期しない mysqld の停止がなかった場合は、何らかの問題があるため、さらに調査する必要があります。

MySQL 5.6 では、サーバーが MyISAM テーブルの破損を検出すると、追加の情報 (ソースファイルの名前と行番号、テーブルにアクセスしていたスレッドのリストなど) をエラーログに書き込みます。たとえば、「thread_id=1 からエラーを受け取りました。mi_dynrec.c:368」です。これは、バグレポートに含めると役に立つ情報です。

セクション5.1.3「サーバーコマンドオプション」およびセクション24.4.1.7「テーブルが破損した場合のテストケースの作成」も参照してください。

B.5.3 インストール関連の問題

B.5.3.1 ファイル権限の問題

ファイル権限に問題がある場合は、mysqld が起動されたときに、UMASK 環境変数が不適切に設定された可能性があります。たとえば、MySQL はテーブルを作成するときに次のエラーメッセージを発行することがあります。

ERROR: Can't find file: 'path/with/filename.frm' (Errcode: 13)

デフォルトの UMASK 値は 0660 です。この動作を変更するには、mysqld_safe を次のように起動します。

shell> UMASK=384 # = 600 in octalshell> export UMASKshell> mysqld_safe &

デフォルトでは、MySQL はアクセス許可値 0700 でデータベースディレクトリを作成します。この動作を変更するには、UMASK_DIR 変数を設定します。この値を設定すると、新しいディレクトリは UMASK 値と UMASK_DIR 値を組み合わせたもので作成されます。たとえば、新しいすべてのディレクトリにグループアクセスを与える場合は、次のように実行します。

shell> UMASK_DIR=504 # = 770 in octalshell> export UMASK_DIRshell> mysqld_safe &

MySQL では、UMASK または UMASK_DIR の値がゼロで始まる場合、その値は 8 進数と見なされます。

セクション2.12「環境変数」を参照してください。

B.5.4 管理関連の問題

B.5.4.1 root のパスワードをリセットする方法

MySQL の root のパスワードを設定したことがない場合、root として接続するときにサーバーはパスワードを要求しません。ただし、これはセキュリティー保護されていません。パスワードを割り当てる手順については、セクション2.10.2「最初の MySQL アカウントのセキュリティー設定」を参照してください。

root のパスワードを知っているがそれを変更する場合は、セクション13.7.1.7「SET PASSWORD 構文」を参照してください。

root のパスワードを以前設定したが忘れた場合は、新しいパスワードを設定できます。次のセクションでは、Windows システムと UNIX システムでの手順、およびすべてのシステムに当てはまる一般的な手順について説明します。

B.5.4.1.1 root のパスワードのリセット: Windows システム

Windows では、次の手順を使用してすべての MySQL root アカウントのパスワードをリセットします。

  1. Administrator としてシステムにログオンします。

  2. MySQL サーバーが実行されている場合は停止します。Windows サービスとして実行されているサーバーの場合は、サービスマネージャーを開きます (「スタート」メニューから、「コントロール パネル」「管理ツール」「サービス」の順に選択します)。リスト内で MySQL サービスを見つけて、それを停止します。

    サーバーがサービスとして実行されていない場合は、タスクマネージャーを使用して強制的に停止する必要があることがあります。

  3. 次のステートメントを含むテキストファイルを作成します。パスワードを使用するパスワードに置き換えます。

    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;

    UPDATE ステートメントおよび FLUSH ステートメントは、それぞれ単一の行に記述します。UPDATE ステートメントはすべての root アカウントのパスワードをリセットし、FLUSH ステートメントは付与テーブルをメモリーにリロードするようにサーバーに通知して、パスワードの変更が認識されるようにします。

  4. ファイルを保存します。この例では、ファイルに C:\mysql-init.txt という名前を付けます。

  5. コンソールウィンドウを開いて、コマンドプロンプトを表示します (「スタート」メニューから「ファイル名を指定して実行」を選択し、実行するコマンドとして cmd を入力します)。

  6. 特殊な --init-file オプション (オプション値のバックスラッシュは 2 つです) を指定して MySQL サーバーを起動します。

    C:\> C:\mysql\bin\mysqld --init-file=C:\\mysql-init.txt

    C:\mysql 以外の場所に MySQL をインストールした場合は、それに応じてコマンドを変更します。

    --init-file オプションで指定されたファイルの内容がサーバーの起動時に実行され、各 root アカウントのパスワードが変更されます。

    サーバーがログファイルではなくコンソールウィンドウに出力を表示するようにする場合は、--console オプションをコマンドに追加することもできます。

    MySQL Installation Wizard を使用して MySQL をインストールした場合は、--defaults-file オプションを指定する必要があることがあります。

    C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe"--defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.6\\my.ini"--init-file=C:\\mysql-init.txt

    適切な --defaults-file 設定はサービスマネージャーを使用して見つけることができます (「スタート」メニューから「コントロール パネル」「管理ツール」「サービス」の順に選択します)。リスト内で MySQL サービスを見つけて、それを右クリックし、「プロパティ」オプションを選択します。「実行ファイルのパス」フィールドに --defaults-file 設定が含まれています。

  7. サーバーが正常に起動されたら C:\mysql-init.txt を削除します。

新しいパスワードを使用して root として MySQL サーバーに接続できるようになりました。MySQL サーバーを停止して、通常モードで再起動します。サーバーをサービスとして実行している場合は、Windows の「サービス」ウィンドウから開始します。サーバーを手動で起動している場合は、通常使用するコマンドを使用してください。

B.5.4.1.2 root のパスワードのリセット: UNIX システム

UNIX では、次の手順を使用してすべての MySQL root アカウントのパスワードをリセットします。この手順は、サーバーの実行に通常使用する UNIX のログインアカウントを使用して実行されるようにサーバーが起動されることを想定しています。たとえば、mysql のログインアカウントを使用してサーバーを実行する場合は、この手順を使用する前に mysql としてログインしてください。または、root としてログインすることもできますが、この場合は --user=mysql オプションを指定して mysqld を起動する必要があります--user=mysql を使用せずに root としてサーバーを起動した場合、サーバーは root が所有するファイル (ログファイルなど) をデータディレクトリに作成することがあり、以降のサーバーの起動で権限関連の問題の原因となることがあります。これが発生した場合は、それらのファイルの所有権を mysql に変更するか、それらを削除する必要があります。

  1. mysqld サーバーが実行される UNIX ユーザー (たとえば、mysql) としてシステムにログオンします。

  2. サーバーのプロセス ID が含まれている .pid ファイルを見つけます。このファイルの正確な場所と名前は、配布、ホスト名、および構成によって異なります。一般的な場所は、/var/lib/mysql//var/run/mysqld/、および /usr/local/mysql/data/ です。通常、ファイル名には .pid という拡張子が付けられており、mysqld またはシステムのホスト名で始まります。

    MySQL サーバーを停止するには、次のコマンドに .pid ファイルのパス名を使用して、通常の kill (kill -9 ではありません) を mysqld プロセスに送信します。

    shell> kill `cat /mysql-data-directory/host_name.pid`

    cat コマンドには逆引用符 (通常の引用符ではなく) を使用します。これにより、cat の出力が kill コマンドに指定されます。

  3. 次のステートメントを含むテキストファイルを作成します。パスワードを使用するパスワードに置き換えます。

    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;

    UPDATE ステートメントおよび FLUSH ステートメントは、それぞれ単一の行に記述します。UPDATE ステートメントはすべての root アカウントのパスワードをリセットし、FLUSH ステートメントは付与テーブルをメモリーにリロードするようにサーバーに通知して、パスワードの変更が認識されるようにします。

  4. ファイルを保存します。この例では、ファイルに /home/me/mysql-init という名前を付けます。このファイルにはパスワードが含まれているため、ほかのユーザーが見ることができる場所に保存しないでください。mysql (サーバーが実行されるときのユーザー) としてログインしていない場合は、mysql による読み取りを許可する権限がファイルに設定されていることを確認してください。

  5. 特殊な --init-file オプションを指定して MySQL サーバーを起動します。

    shell> mysqld_safe --init-file=/home/me/mysql-init &

    --init-file オプションで指定されたファイルの内容がサーバーの起動時に実行され、各 root アカウントのパスワードが変更されます。

  6. サーバーが正常に起動されたら /home/me/mysql-init を削除します。

新しいパスワードを使用して root として MySQL サーバーに接続できるようになりました。サーバーを停止して、通常モードで再起動します。

B.5.4.1.3 root のパスワードのリセット: 一般的な手順

前のセクションでは、Windows システムおよび UNIX システムでのパスワードのリセットの手順を説明しました。ほかの方法としては、すべてのプラットフォームで mysql クライアントを使用して新しいパスワードを設定できます (ただし、この方法はセキュリティー保護の面で劣ります)。

  1. mysqld を停止し、--skip-grant-tables オプションを指定して再起動します。これにより、だれでもパスワードなしで接続できるようになり、すべての権限が付与されます。これはセキュアではないため、リモートクライアントによる接続を回避するために、--skip-networking と組み合わせて --skip-grant-tables を使用する必要がある場合もあります。

  2. 次のコマンドを使用して mysqld サーバーに接続します。

    shell> mysql
  3. mysql クライアントで次のステートメントを発行します。パスワードを使用するパスワードに置き換えます。

    mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') -> WHERE User='root';mysql> FLUSH PRIVILEGES;

    FLUSH ステートメントは、パスワードの変更を認識させるために、付与テーブルをメモリーにリロードするようにサーバーに通知します。

新しいパスワードを使用して root として MySQL サーバーに接続できるようになりました。サーバーを指定して、通常モード (--skip-grant-tables オプションおよび --skip-networking オプションを指定しない) で再起動します。

B.5.4.2 MySQL が繰り返しクラッシュする場合の対処方法

各 MySQL バージョンは、リリース前に多くのプラットフォームでテストされています。これは、MySQL にバグがないということではありませんが、バグがあってもごく少数であり、見つかることはまれです。問題が発生した場合は、システムがクラッシュした正確な原因を探すことが常に役に立ちます。問題の修正が迅速に得られる可能性が高まるためです。

まず、問題は mysqld サーバーが停止したことであるかどうか、またはクライアントに関連しているかどうかを判別してください。mysqld サーバーが稼働している時間を確認するには、mysqladmin version を実行します。mysqld が停止して再起動された場合は、サーバーのエラーログを確認すると原因が見つかる可能性があります。セクション5.2.2「エラーログ」 を参照してください。

一部のシステムでは、mysqld が停止したときのスタックトレースがエラーログに出力され、それを resolve_stack_dump プログラムを使用して変換できます。セクション24.4「MySQL のデバッグおよび移植」 を参照してください。エラーログに書き込まれる変数値は、常に 100% 正しいとは限りません。

多くのサーバーのクラッシュは、破損したデータファイルまたはインデックスファイルによって発生します。MySQL は、各 SQL ステートメントの実行後、クライアントに結果を通知する前に、ディスク上のファイルを write() システムコールを使用して更新します。(データファイルは書き込まれるがインデックスファイルは書き込まれない --delay-key-write を指定して実行している場合は異なります。)これは、mysqld がクラッシュしてもデータファイルのコンテンツは安全であることを意味します。フラッシュされていないデータがオペレーティングシステムによってディスクに書き込まれることが保証されているためです。各 SQL ステートメントのあとに MySQL がすべてのデータをディスクにフラッシュするようにするには、--flush オプションを指定して mysqld を起動します。

これは、通常、次のいずれかが発生していなければ、データが損なわれたテーブルができることはないことを意味します。

  • MySQL サーバーまたはサーバーのホストが更新中に強制終了された。

  • 更新の途中に mysqld が停止するバグが見つかった。

  • 一部の外部プログラムは、テーブルを適切にロックせずに、mysqld と同時にデータファイルまたはインデックスファイルを操作しています。

  • 適切なファイルシステムのロック (通常は lockd ロックマネージャーによって処理されます) をサポートしていないシステムで同じデータディレクトリを使用して多数の mysqld サーバーを実行しているか、外部ロックを無効にして複数のサーバーを実行している。

  • 大きく破損したデータが含まれているクラッシュしたデータファイルまたはインデックスファイルがあり、mysqld が混乱した。

  • データストレージのコードにバグが見つかった。可能性は低いですがあり得ることです。この場合は、修復されたテーブルのコピーに対して ALTER TABLE を使用することによって、別のエンジンへのストレージエンジンの変更を試みることができます。

何かがクラッシュした原因を判別するのは非常に難しいことであるため、まず、ほかの環境で動作する操作でも問題の環境ではクラッシュが発生するのかどうかを確認してください。次のことを試してください。

  • mysqladmin shutdown を使用して mysqld サーバーを停止し、データディレクトリから myisamchk --silent --force */*.MYI を実行して、すべての MyISAM テーブルを確認し、mysqld を再起動します。これにより、クリーンな状態から実行していることが保証されます。第5章「MySQL サーバーの管理 を参照してください。

  • 一般クエリーログを有効にして (セクション5.2.3「一般クエリーログ」を参照してください) mysqld を起動します。ログに書き込まれた情報から、特定のクエリーによってサーバーが強制終了したかどうかを判別してください。すべてのバグの 95% は特定のクエリーに関連しています。通常、これは、サーバーが再起動される前のログファイルの最後のクエリーのいずれかです。セクション5.2.3「一般クエリーログ」を参照してください。クエリーを発行する前にすべてのテーブルを確認しても、特定のクエリーによって MySQL が繰り返し強制終了される場合は、バグとして判別されましたのでバグレポートを送信してください。セクション1.6「質問またはバグをレポートする方法」を参照してください。

  • 問題を再現するために使用できるテストケースを作成してください。セクション24.4「MySQL のデバッグおよび移植」 を参照してください。

  • mysql-test ディレクトリおよび MySQL ベンチマークでテストを実行してください。セクション24.1.2「MySQL テストスイート」を参照してください。それらの環境では MySQL がよりよくテストされます。アプリケーションをシミュレートするコードをベンチマークに追加することもできます。ベンチマークは、ソース配布の場合は sql-bench ディレクトリ、バイナリ配布の場合は MySQL のインストールディレクトリの下の sql-bench ディレクトリにあります。

  • fork_big.pl スクリプトを試してください。(ソース配布の tests ディレクトリにあります。)

  • MySQL をデバッグ用に構成すると、何らかの問題がある場合に、考えられるエラーに関する情報を収集しやすくなります。-DWITH_DEBUG=1 オプションを指定して MySQL を再構成し、CMake を実行して再コンパイルします。セクション24.4「MySQL のデバッグおよび移植」 を参照してください。

  • オペレーティングシステムに最新のパッチが適用されていることを確認してください。

  • --skip-external-locking オプションを使用して mysqld を起動します。一部のシステムでは lockd ロックマネージャーが正常に動作しません。--skip-external-locking オプションは mysqld に外部ロックを使用しないように通知します。(これは、同じデータディレクトリで 2 つの mysqld サーバーは実行できず、myisamchk を使用する場合は注意する必要があることを意味します。それでも、テストとしてこのオプションを試すことには価値があります。)

  • mysqld は実行されているが応答しない場合は、mysqladmin -u root processlist を試してください。mysqld が応答しないように見えても、ハングアップしていないことがあります。すべての接続が使用されているか、内部ロックの問題である可能性があります。mysqladmin -u root processlist は、通常、これらの場合でも接続を確立することができ、現在の接続数およびそのステータスに関する役に立つ情報が表示されます。

  • ほかのクエリーを実行しているときに、別のウィンドウで mysqladmin -i 5 status コマンドまたは mysqladmin -i 5 -r status コマンドを実行して統計を生成します。

  • 次の手順を試してください。

    1. gdb (または別のデバッガ) から mysqld を起動します。セクション24.4「MySQL のデバッグおよび移植」 を参照してください。

    2. テストスクリプトを実行します。

    3. もっとも低い 3 つのレベルでバックトレースおよびローカル変数を出力します。gdb でこれを行うには、mysqldgdb 内でクラッシュしたときに、次のコマンドを使用します。

      backtrace
      info local
      up
      info local
      up
      info local

      gdb で、info threads を使用して存在するスレッドを検査し、thread N (ここで N はスレッド ID です) を使用して特定のスレッドに切り替えることもできます。

  • Perl スクリプトを使用してアプリケーションをシミュレートし、MySQL をクラッシュまたは誤動作させてください。

  • 通常のバグレポートを送信します。セクション1.6「質問またはバグをレポートする方法」を参照してください。通常より詳しく記述してください。MySQL は多くのユーザーの環境では動作しているため、クラッシュは問題となっているコンピュータにのみ存在する何かによって発生している可能性があります (たとえば、特定のシステムライブラリに関連するエラー)。

  • 動的長の行を含むテーブルで問題があり、VARCHAR カラム (BLOB カラムまたは TEXT カラムではなく) のみを使用している場合は、ALTER TABLE を使用して、すべての VARCHARCHAR に変更してみてください。これにより、MySQL が固定長の行を使用するようになります。固定長の行では若干追加の領域が使用されますが、破損に対してより耐性があります。

    現在の動的行のコードは数年使用されており、問題はほとんど発生していませんが、動的長の行はその性質のためエラーが発生しやすい傾向があるので、この方法がうまくいくかどうかを試すのは良い考えである可能性があります。

  • 問題を診断する場合は、ハードウェアの障害の可能性を考慮に入れてください。欠陥のあるハードウェアは、データ破損の原因となることがあります。ハードウェアをトラブルシューティングする場合は、メモリーおよびディスクのサブシステムに特に注意してください。

B.5.4.3 MySQL が満杯のディスクを処理する方法

このセクションでは、MySQL がディスク満杯エラー (デバイスに領域が残っていないなど)、および割り当て超過エラー (書き込みに失敗しましたユーザーブロックの制限に達しましたなど) に対処する方法について説明します。

このセクションは、MyISAM テーブルへの書き込みに関連しています。およびレコードへの言及がイベントを意味すると理解する必要があることを除き、バイナリログファイルおよびバイナリログインデックスファイルへの書き込みにも当てはまります。

ディスク満杯状態が発生すると、MySQL は次のことを行います。

  • 現在の行を書き込むための十分な領域があるかどうかを 1 分おきに確認します。十分な領域がある場合は、何事もなかったかのように稼働し続けます。

  • ディスク満杯状態について警告するエントリをログファイルに 10 分おきに書き込みます。

問題を軽減するには次のアクションを行います。

  • 続行する場合は、すべてのレコードを挿入するための十分なディスク領域を解放する必要があるだけです。

  • または、スレッドを中止するには mysqladmin kill を使用します。スレッドは次回ディスクがチェックされるとき (1 分以内) に中止されます。

  • ほかのスレッドが、ディスク満杯状態の原因となったテーブルを待機している可能性があります。複数のロックされたスレッドがある場合は、ディスク満杯状態を待機していた 1 つのスレッドを強制終了すると、ほかのスレッドが続行できるようになります。

前述の動作の例外は、REPAIR TABLE または OPTIMIZE TABLE を使用する場合、あるいは LOAD DATA INFILE またはALTER TABLE ステートメントのあとにインデックスがバッチで作成される場合です。これらのすべてのステートメントでは大きい一時ファイルが作成されることがあり、それがそのまま残された場合、システムのほかの部分で大きな問題となる可能性があります。MySQL がこれらのいずれかの操作を実行していて、ディスクが満杯になった場合は、大きい一時ファイルが削除され、テーブルがクラッシュとしてマークされます。例外は ALTER TABLE の場合で、古いテーブルは変更されないままになります。

B.5.4.4 MySQL が一時ファイルを格納する場所

UNIX では、MySQL は一時ファイルを格納するディレクトリのパス名として、TMPDIR 環境変数の値を使用します。TMPDIR が設定されていない場合、MySQL はシステムのデフォルトを使用します。通常、これは /tmp/var/tmp、または /usr/tmp です。

Windows では、MySQL は TMPDIRTEMP、および TMP 環境変数の値を順番にチェックします。MySQL は最初に見つかった設定されている変数を使用し、残りの変数はチェックしません。TMPDIRTEMP、および TMP がいずれも設定されていない場合、MySQL は Windows システムのデフォルトを使用します。通常、これは C:\windows\temp\ です。

一時ファイルディレクトリが含まれているファイルシステムが小さすぎる場合は、mysqld--tmpdir オプションを使用して、十分な領域があるファイルシステムのディレクトリを指定できます。レプリケーションのスレーブでは、LOAD DATA INFILE ステートメントをレプリケートするときに、--slave-load-tmpdir を使用して一時ファイルを保持するための別個のディレクトリを指定できます。

--tmpdir オプションには、ラウンドロビン方式で使用される複数のパスのリストを設定できます。パスは UNIX ではコロン文字 (:)、Windows ではセミコロン文字 (;) で区切るようにしてください。

注記

負荷を効果的に分散するには、これらのパスに同じディスクの個別のパーティションではなく、個別の物理ディスクを指定してください。

MySQL サーバーがレプリケーションのスレーブとして動作する場合は、--slave-load-tmpdir にメモリーベースのファイルシステム上にあるディレクトリ、またはサーバーのホストが再起動されたときにクリアーされるディレクトリを設定しないようにしてください。レプリケーションスレーブは、一部の一時ファイルがマシンの再起動後も存続し、一時テーブルまたは LOAD DATA INFILE 操作を複製できるようにする必要があります。サーバーが再起動されたときに、スレーブの一時ファイルディレクトリ内のファイルが失われると、レプリケーションは失敗します。

MySQL は、mysqld が終了したら一時ファイルが削除されるようにしています。これがサポートされるプラットフォームでは (UNIX など)、ファイルをオープンしたあとにリンク解除することによってこれが行われます。この方法のデメリットは、名前がディレクトリのリストに表示されないことであり、一時ファイルディレクトリがあるファイルシステムを満杯にしている大きい一時ファイルが表示されません。(そのような場合は、mysqld に関連付けられている大きいファイルを識別するために、lsof +L1 が役に立つことがあります。)

通常、MySQL はソート (ORDER BY または GROUP BY) を行うときに、1 つまたは 2 つの一時ファイルを使用します。必要となる最大のディスク領域は次の式によって判別されます。

(length of what is sorted + sizeof(row pointer))
* number of matched rows
* 2

行ポインタのサイズは通常 4 バイトですが、大きいテーブルの場合は将来拡張される可能性があります。

一部の SELECT クエリーでは、MySQL は一時 SQL テーブルを作成します。これらは隠しテーブルではなく、SQL_* という形式の名前が付けられます。

ほとんどの場合、ALTER TABLE は元のテーブルの一時コピーを元のテーブルと同じディレクトリに作成します。ただし、ALTER TABLE でインプレース手法 (オンライン DDL) が使用された場合、InnoDB は一時ファイルを一時ファイルディレクトリに作成します。このディレクトリがそのようなファイルを保持するほどに十分に大きくない場合は、tmpdir システム変数に別のディレクトリを設定する必要があることがあります。オンライン DDL については、セクション14.11「InnoDB とオンライン DDL」を参照してください。

B.5.4.5 MySQL の UNIX ソケットファイルを保護または変更する方法

サーバーがローカルクライアントと通信するために使用する UNIX ソケットファイルのデフォルトの場所は、/tmp/mysql.sock です。(一部の配布形式ではディレクトリが異なる場合があり、たとえば RPM の場合は /var/lib/mysql です。)

UNIX の一部のバージョンでは、/tmp ディレクトリ内のファイル、または一時ファイルに使用されるほかの同様のディレクトリ内のファイルをだれでも削除できます。ソケットファイルがシステム上のそのようなディレクトリに配置されている場合は、問題となることがあります。

ほとんどのバージョンの UNIX では、/tmp ディレクトリを保護して、所有者またはスーパーユーザー (root) のみがファイルを削除できるようにすることができます。これを行うには、root としてログインして次のコマンドを使用することによって、/tmp ディレクトリにスティッキービットを設定します。

shell> chmod +t /tmp

スティッキービットが設定されたかどうかを確認するには、ls -ld /tmp を実行します。いちばん最後の権限文字が t である場合は、このビットが設定されています。

別の方法は、サーバーが UNIX ソケットファイルを作成する場所を変更することです。これを行う場合は、クライアントプログラムにもファイルの新しい場所を認識させてください。ファイルの場所を指定する方法はいくつかあります。

  • グローバルまたはローカルのオプションファイルにパスを指定します。たとえば、次の行を /etc/my.cnf に指定します。

    [mysqld]
    socket=/path/to/socket
    [client]
    socket=/path/to/socket

    セクション4.2.6「オプションファイルの使用」を参照してください。

  • mysqld_safe およびクライアントプログラムを実行するときに、--socket オプションをコマンド行に指定します。

  • MYSQL_UNIX_PORT 環境変数に UNIX ソケットファイルのパスを設定します。

  • 別のデフォルトの UNIX ソケットファイルの場所を使用するように、ソースから MySQL を再コンパイルします。CMake を実行するときに MYSQL_UNIX_ADDR オプションでファイルへのパスを定義します。セクション2.9.4「MySQL ソース構成オプション」を参照してください。

新しいソケットの場所が動作しているかどうかをテストするには、次のコマンドを使用してサーバーに接続します。

shell> mysqladmin --socket=/path/to/socket version

B.5.4.6 タイムゾーンの問題

SELECT NOW() でローカルの時間ではなく UTC で値が返される問題がある場合は、サーバーに現在のタイムゾーンを通知する必要があります。UNIX_TIMESTAMP() が間違った値を返す場合も同様です。これはサーバーが実行されている環境で行なってください (たとえば、mysqld_safe または mysql.server)。セクション2.12「環境変数」を参照してください。

サーバーのタイムゾーンを設定するには、mysqld_safe--timezone=timezone_name オプションを指定します。mysqld を起動する前に、TZ 環境変数を設定することによって設定することもできます。

--timezone または TZ に許可される値は、システムによって異なります。許容可能な値を確認するには、オペレーティングシステムのドキュメントを参照してください。

B.5.5 クエリー関連の問題

B.5.5.1 文字列検索での大文字/小文字の区別

非バイナリ文字列の場合 (CHARVARCHARTEXT)、文字列検索では比較オペランドの照合順序が使用されます。バイナリ文字列の場合 (BINARYVARBINARYBLOB)、比較ではオペランドのバイトの数値が使用されます。これは、アルファベット文字の場合、比較で大文字/小文字が区別されることを意味します。

非バイナリ文字列とバイナリ文字列の比較は、バイナリ文字列の比較として扱われます。

単純な比較操作 (>=、>、=、<、<=、ソート、およびグループ化) は、各文字のソート値に基づきます。同じソート値を持つ文字は同じ文字として扱われます。たとえば、eé が対象の照合順序で同じソート値を持つ場合は、等しいと判断されます。

デフォルトの文字セットおよび照合順序は latin1 および latin1_swedish_ci であるため、非バイナリ文字列の比較はデフォルトでは大文字/小文字が区別されません。これは、col_name LIKE 'a%' を使用して検索した場合、A または a で始まるすべてのカラム値が取得されることを意味します。この検索で大文字/小文字が区別されるようにするには、いずれかのオペランドで大文字/小文字を区別するか、バイナリ照合順序を持つようにします。たとえば、カラムおよび文字列を比較するときに両方が latin1 文字セットである場合は、COLLATE 演算子を使用して、どちらかのオペランドを latin1_general_cs または latin1_bin の照合順序にすることができます。

col_name COLLATE latin1_general_cs LIKE 'a%'col_name LIKE 'a%' COLLATE latin1_general_cscol_name COLLATE latin1_bin LIKE 'a%'col_name LIKE 'a%' COLLATE latin1_bin

カラムで常に大文字/小文字が区別して扱われるようにするには、大文字/小文字が区別されるように宣言するか、バイナリ照合順序を指定して宣言します。セクション13.1.17「CREATE TABLE 構文」を参照してください。

非バイナリ文字列の大文字/小文字が区別される比較で大文字/小文字が区別されないようにするには、COLLATE を使用して、大文字/小文字が区別されない照合順序を指定します。通常、次の例の文字列では大文字/小文字が区別されますが、COLLATE によって比較で大文字/小文字が区別されないように変更されています。

mysql> SET @s1 = 'MySQL' COLLATE latin1_bin, ->  @s2 = 'mysql' COLLATE latin1_bin;mysql> SELECT @s1 = @s2;+-----------+
| @s1 = @s2 |
+-----------+
| 0 |
+-----------+
mysql> SELECT @s1 COLLATE latin1_swedish_ci = @s2;+-------------------------------------+
| @s1 COLLATE latin1_swedish_ci = @s2 |
+-------------------------------------+
| 1 |
+-------------------------------------+

バイナリ文字列の比較では大文字/小文字が区別されます。この文字列を大文字/小文字が区別されないように比較するには、非バイナリ文字列に変換し、COLLATE を使用して大文字/小文字が区別されない照合順序を指定します。

mysql> SET @s = BINARY 'MySQL';mysql> SELECT @s = 'mysql';+--------------+
| @s = 'mysql' |
+--------------+
| 0 |
+--------------+
mysql> SELECT CONVERT(@s USING latin1) COLLATE latin1_swedish_ci = 'mysql';+--------------------------------------------------------------+
| CONVERT(@s USING latin1) COLLATE latin1_swedish_ci = 'mysql' |
+--------------------------------------------------------------+
| 1 |
+--------------------------------------------------------------+

値が非バイナリ文字列またはバイナリ文字列のどちらで比較されるかを判別するには、COLLATION() 関数を使用します。次の例は、VERSION() が大文字/小文字が区別されない照合順序の文字列を返すことを示しており、比較では大文字/小文字が区別されません。

mysql> SELECT COLLATION(VERSION());+----------------------+
| COLLATION(VERSION()) |
+----------------------+
| utf8_general_ci |
+----------------------+

バイナリ文字列の場合、照合順序値は binary であり、比較では大文字/小文字が区別されます。binary が表示される 1 つのコンテキストは、一般的なルールとしてバイナリ文字列を返す圧縮関数および暗号化関数の場合です。

mysql> SELECT COLLATION(ENCRYPT('x')), COLLATION(SHA1('x'));+-------------------------+----------------------+
| COLLATION(ENCRYPT('x')) | COLLATION(SHA1('x')) |
+-------------------------+----------------------+
| binary | binary |
+-------------------------+----------------------+

文字列のソート値を確認する場合は、WEIGHT_STRING() が役に立つことがあります。セクション12.5「文字列関数」を参照してください。

B.5.5.2 DATE カラムの使用に関する問題

DATE 値の形式は 'YYYY-MM-DD' です。標準 SQL に従うと、ほかの形式は許可されません。UPDATE の式および SELECT ステートメントの WHERE 句では、この形式を使用してください。例:

SELECT * FROM t1 WHERE date >= '2003-05-05';

利便性のため、日付が数値のコンテキストで使用されている場合、MySQL は日付を数値に自動的に変換します (その逆にも変換されます)。また、MySQL は、更新時、および日付を DATEDATETIME、または TIMESTAMP カラムと比較する WHERE 句で、緩やかな文字列形式を許可します。緩やかな形式とは、各部分の区切り文字として句読点文字を使用できることを意味します。たとえば、'2004-08-15''2004#08#15' は同等です。MySQL は、日付として解釈できる場合、区切り文字が含まれていない文字列 ('20040815' など) も変換できます。

<<==>=>、または BETWEEN 演算子を使用して、DATETIMEDATETIME、または TIMESTAMP を定数文字列と比較する場合、通常、MySQL はより速く比較するために (および緩やかな文字列チェックのため) 文字列を内部長整数に変換します。ただし、この変換には次の例外があります。

  • 2 つのカラムを比較する場合

  • DATETIMEDATETIME、または TIMESTAMP カラムと式を比較する場合

  • 上記で一覧表示した比較方法以外の比較方法を使用する場合 (INSTRCMP() など)。

これらの例外の場合、比較はオブジェクトを文字列に変換して文字列比較を実行することによって行われます。

安全に処理を行うには、時間値と文字列を比較する場合、文字列が文字列として比較されると想定し、適切な文字列関数を使用します。

特殊なゼロ日付 '0000-00-00' は、'0000-00-00'. として格納および取得できます。'0000-00-00' 日付が Connector/ODBC を介して使用される場合、ODBC はそのような日付を処理できないため、NULL に自動的に変換されます。

MySQL が前述の変換を実行するため、次のステートメントは動作します (idateDATE カラムであると想定しています)。

INSERT INTO t1 (idate) VALUES (19970505);
INSERT INTO t1 (idate) VALUES ('19970505');
INSERT INTO t1 (idate) VALUES ('97-05-05');
INSERT INTO t1 (idate) VALUES ('1997.05.05');
INSERT INTO t1 (idate) VALUES ('1997 05 05');
INSERT INTO t1 (idate) VALUES ('0000-00-00');
SELECT idate FROM t1 WHERE idate >= '1997-05-05';
SELECT idate FROM t1 WHERE idate >= 19970505;
SELECT MOD(idate,100) FROM t1 WHERE idate >= 19970505;
SELECT idate FROM t1 WHERE idate >= '19970505';

ただし、次のステートメントは動作しません。

SELECT idate FROM t1 WHERE STRCMP(idate,'20030505')=0;

STRCMP() は文字列関数であり、idate'YYYY-MM-DD' という形式の文字列に変換して、文字列比較を実行します。'20030505' は日付 '2003-05-05' に変換されずに、日付比較が実行されます。

ALLOW_INVALID_DATES SQL モードを有効にしている場合、MySQL は限定的なチェックのみが行われた日付を格納することを許可します。MySQL は、日が 1 から 31 までの範囲内にあり、月が 1 から 12 までの範囲内にあることのみを要求します。これにより、Web アプリケーションで年、月、および日を 3 つの別個のフィールドで取得して、ユーザーが入力したとおりに格納する (日付検証なしで) 場合に、MySQL が非常に便利になります。

MySQL は、日または月と日がゼロである日付の格納を許可します。これは、生年月日を DATE カラムに格納するが、その日付の一部のみがわかっている場合に便利です。日付でゼロの月または日の部分を無効にするには、NO_ZERO_IN_DATE SQL モードを有効にします。

MySQL では、ダミーの日付として '0000-00-00'ゼロの値を格納できます。これは、NULL 値を使用するよりも便利な場合があります。DATE カラムに格納される日付を妥当な値に変換できない場合、MySQL は '0000-00-00' を格納します。'0000-00-00' を無効にするには、NO_ZERO_DATE SQL モードを有効にします。

MySQL がすべての日付をチェックして、有効な日付のみを受け入れるようにするには (IGNORE によってオーバーライドされないかぎり)、sql_mode システム変数に "NO_ZERO_IN_DATE,NO_ZERO_DATE" を設定します。

B.5.5.3 NULL 値に関する問題

NULL 値の概念については、NULL が空の文字列 '' と同じであると考えがちな SQL の初心者が混乱することがよくあります。これらは同一ではありません。たとえば、次の 2 つのステートメントは完全に異なります。

mysql> INSERT INTO my_table (phone) VALUES (NULL);mysql> INSERT INTO my_table (phone) VALUES ('');

両方のステートメントで phone カラムに値が挿入されていますが、最初のステートメントは NULL 値を挿入しており、2 番目のステートメントは空の文字列を挿入しています。最初のステートメントの意味は電話番号がわからない、2 番目のステートメントの意味はこの人は電話を持っていないため、電話番号がないと見なすことができます。

NULL を処理する場合は、IS NULL 演算子と IS NOT NULL 演算子、および IFNULL() 関数を使用できます。

SQL では、NULL 値はほかの値 (NULL を含む) との比較で true になることはありません。NULL を含む式は、式に関連する演算子および関数のドキュメントに示されている場合を除き、常に NULL 値を生成します。次の例のすべてのカラムは NULL を返します。

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);

NULL であるカラム値を検索する場合、expr = NULL テストは使用できません。expr = NULL はどのような式の場合でも true にならないため、次のステートメントは行を返しません。

mysql> SELECT * FROM my_table WHERE phone = NULL;

NULL 値を検索するには、IS NULL テストを使用する必要があります。次のステートメントは、NULL の電話番号および空の電話番号を検索する方法を示しています。

mysql> SELECT * FROM my_table WHERE phone IS NULL;mysql> SELECT * FROM my_table WHERE phone = '';

追加情報および例については、セクション3.3.4.6「NULL 値の操作」を参照してください。

MyISAMInnoDB、または MEMORY ストレージエンジンを使用している場合は、NULL 値を持つことができるカラムにインデックスを追加できます。それ以外の場合は、インデックスが付けられるカラムを NOT NULL と宣言する必要があり、そのカラムには NULL を挿入できません。

LOAD DATA INFILE でデータが読み取られるときに、空のカラムまたは欠落しているカラムは '' で更新されます。NULL 値をカラムにロードするには、データファイルで \N を使用します。状況によっては、リテラル文字 NULL も使用できます。セクション13.2.6「LOAD DATA INFILE 構文」を参照してください。

DISTINCTGROUP BY、または ORDER BY が使用された場合、すべての NULL 値は等しいと見なされます。

ORDER BY を使用した場合、NULL 値は最初 (DESC を指定してソートを降順にした場合は最後) に表示されます。

集約 (サマリー) 関数 (COUNT()MIN()SUM() など) は NULL 値を無視します。例外は個別のカラム値ではなく行数をカウントする COUNT(*) です。たとえば、次のステートメントは 2 つのカウントを生成します。最初のカウントはテーブル内の行数のカウントであり、2 番目のカウントは age カラムの NULL 以外の値の数のカウントです。

mysql> SELECT COUNT(*), COUNT(age) FROM person;

一部のデータ型では、MySQL は NULL 値に対して特殊な処理を行います。NULLTIMESTAMP カラムに挿入すると、現在の日付と時間が挿入されます。NULLAUTO_INCREMENT 属性を持つ整数カラムまたは浮動小数点カラムに挿入すると、シーケンスの次の数値が挿入されます。

B.5.5.4 カラムエイリアスに関する問題

エイリアスをクエリーの選択リストに使用すると、カラムを別の名前にすることができます。GROUP BYORDER BY、または HAVING 句でエイリアスを使用して、カラムを参照できます。

SELECT SQRT(a*b) AS root FROM tbl_name GROUP BY root HAVING root > 0;
SELECT id, COUNT(*) AS cnt FROM tbl_name GROUP BY id HAVING cnt > 0;
SELECT id AS 'Customer identity' FROM tbl_name;

標準 SQL では、WHERE 句でのカラムエイリアスへの参照は許可されません。WHERE 句が評価されるときに、カラム値がまだ判別されていない場合があるため、この制限が課されています。たとえば、次のクエリーは不正です。

SELECT id, COUNT(*) AS cnt FROM tbl_name WHERE cnt > 0 GROUP BY id;

WHERE 句は GROUP BY 句に含められる行を判別しますが、行が選択されるまでわからないカラム値のエイリアスを参照して GROUP BY によってグループ化しています。

クエリーの選択リストで、引用したカラムエイリアスを指定するには、識別子または文字列引用文字を使用します。

SELECT 1 AS `one`, 2 AS 'two';

ステートメント内のどこに指定する場合でも、エイリアスへの引用した参照には、識別子引用符を使用する必要があります。そうしないと、参照は文字列リテラルとして扱われます。たとえば、次のステートメントはカラム id の値によってグループ化され、エイリアス `a` を使用して参照されます。

SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name GROUP BY `a`;

ただし、次のステートメントはリテラル文字列 'a' によってグループ化され、予期したとおりに動作しません。

SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name GROUP BY 'a';

B.5.5.5 非トランザクションテーブルのロールバックの失敗

ROLLBACK を実行しようとしたときに次のメッセージを受け取った場合は、トランザクションで使用された 1 つ以上のテーブルがトランザクションをサポートしていないことを意味します。

Warning: Some non-transactional changed tables couldn't be rolled back

これらの非トランザクションテーブルは、ROLLBACK ステートメントの影響を受けません。

トランザクション内でトランザクションテーブルと非トランザクションテーブルを意図的に混在させていない場合、このメッセージの原因は、トランザクションテーブルと考えていたテーブルが実際にはそうではなかったことである可能性があります。これは、mysqld サーバーによってサポートされていない (または起動オプションで無効にされた) トランザクションストレージエンジンを使用してテーブルを作成しようとした場合に発生することがあります。mysqld がストレージエンジンをサポートしない場合は、非トランザクションである MyISAM テーブルとしてテーブルが作成されます。

テーブルのストレージエンジンを確認するには、次のいずれかのステートメントを使用します。

SHOW TABLE STATUS LIKE 'tbl_name';
SHOW CREATE TABLE tbl_name;

セクション13.7.5.37「SHOW TABLE STATUS 構文」およびセクション13.7.5.12「SHOW CREATE TABLE 構文」を参照してください。

mysqld サーバーによってサポートされるストレージエンジンを確認するには、次のステートメントを使用します。

SHOW ENGINES;

詳細は、セクション13.7.5.17「SHOW ENGINES 構文」を参照してください。

B.5.5.6 関連するテーブルからの行の削除

related_tableDELETE ステートメントの合計長が 1M バイト (max_allowed_packet システム変数のデフォルト値) より大きい場合は、小さく分割して複数の DELETE ステートメントを実行してください。related_column にインデックスが付けられている場合は、ステートメントごとに 100 から 1,000 の related_column 値のみを指定することによって、DELETE が最速になる可能性があります。related_column にインデックスが付けられていない場合、速度は IN 句の引数の数の影響を受けません。

B.5.5.7 一致する行がない場合の問題の解決

多数のテーブルを使用する複雑なクエリーで行が返されない場合は、次の手順を使用して問題を判別してください。

  1. EXPLAIN を指定してクエリーをテストし、明らかな間違いが見つかるかどうかを確認します。セクション13.8.2「EXPLAIN 構文」を参照してください。

  2. WHERE 句で使用されているカラムのみを選択します。

  3. 行が返されるまで、クエリーから一度に 1 つずつテーブルを削除します。テーブルが大きい場合、クエリーに LIMIT 10を使用するのは良い方法です。

  4. クエリーから最後に削除したテーブルに対して一致する行を持つカラムに SELECT を発行します。

  5. FLOAT カラムまたは DOUBLE カラムと 10 進数の数値を比較している場合、等式 (=) 比較は使用できません。すべての浮動小数点値が正確な精度で格納されるとはかぎらないため、この問題はほとんどのコンピュータ言語で一般的です。FLOATDOUBLE に変更すると解決することがあります。セクションB.5.5.8「浮動小数点値に関する問題」を参照してください。

  6. 問題がまだ特定されない場合は、mysql test < query.sql を使用して実行可能な、問題が再現される最小限のテストを作成します。テストファイルを作成するには、mysqldump --quick db_name tbl_name_1 ... tbl_name_n > query.sql を使用してテーブルをダンプします。エディタでファイルを開いて、一部の挿入行を削除し (問題の再現に必要な分量以上にある場合)、ファイルの最後に SELECT ステートメントを追加します。

    次のコマンドを実行して、テストファイルで問題が再現されることを確認します。

    shell> mysqladmin create test2shell> mysql test2 < query.sql

    テストファイルをバグレポートに添付します (セクション1.6「質問またはバグをレポートする方法」の手順を参照してください)。

B.5.5.8 浮動小数点値に関する問題

浮動小数点数は、近似値であり正確な値として格納されないため、混乱の原因となることがあります。SQL ステートメントで出力される浮動小数点値は、内部で表された値と同じではないことがあります。比較で浮動小数点値を正確な値として扱おうとすると、問題となることがあります。これらはまた、プラットフォームまたは実装の依存関係にも従います。FLOAT データ型および DOUBLE データ型では、これらの問題が発生することがあります。DECIMAL カラムの場合、MySQL は演算を 65 桁 (10 進数) の精度で実行するため、ほとんどの一般的な精度の問題が解決されます。

次の例では、DOUBLE を使用し、浮動小数点演算を使用して行われる計算がどのように浮動小数点エラーとなるかを示しています。

mysql> CREATE TABLE t1 (i INT, d1 DOUBLE, d2 DOUBLE);mysql> INSERT INTO t1 VALUES (1, 101.40, 21.40), (1, -80.00, 0.00), -> (2, 0.00, 0.00), (2, -13.20, 0.00), (2, 59.60, 46.40), -> (2, 30.40, 30.40), (3, 37.00, 7.40), (3, -29.60, 0.00), -> (4, 60.00, 15.40), (4, -10.60, 0.00), (4, -34.00, 0.00), -> (5, 33.00, 0.00), (5, -25.80, 0.00), (5, 0.00, 7.20), -> (6, 0.00, 0.00), (6, -51.40, 0.00);mysql> SELECT i, SUM(d1) AS a, SUM(d2) AS b -> FROM t1 GROUP BY i HAVING a <> b;+------+-------+------+
| i | a | b |
+------+-------+------+
| 1 | 21.4 | 21.4 |
| 2 | 76.8 | 76.8 |
| 3 | 7.4 | 7.4 |
| 4 | 15.4 | 15.4 |
| 5 | 7.2 | 7.2 |
| 6 | -51.4 | 0 |
+------+-------+------+

正しい結果です。最初の 5 レコードは比較を満たしていないように見えますが (ab の値は異なるように見えません)、コンピュータのアーキテクチャー、コンパイラのバージョン、最適化レベルなどの要因によって、小数点以下 1 桁などの数字が異なるためにこのような結果となっている可能性があります。たとえば、CPU が異なると、浮動小数点数の評価が異なることがあります。

カラム d1 および d2DOUBLE ではなく DECIMAL として定義されていた場合、SELECT クエリーの結果は 1 行のみ (上記の最後の行) となります。

浮動小数点数の比較を正しく行うには、最初に数値の差異に関して受け入れられる許容度を決定し、許容値に対して比較を行います。たとえば、1 万分の 1 (0.0001) の精度内で同じであれば浮動小数点数が同じであると見なす場合は、許容値より大きい差異を見つけるように比較を記述してください。

mysql> SELECT i, SUM(d1) AS a, SUM(d2) AS b FROM t1 -> GROUP BY i HAVING ABS(a - b) > 0.0001;+------+-------+------+
| i | a | b |
+------+-------+------+
| 6 | -51.4 | 0 |
+------+-------+------+
1 row in set (0.00 sec)

逆に、数値が同じである行を取得する場合は、テストで許容値内での差異を判断するようにします。

mysql> SELECT i, SUM(d1) AS a, SUM(d2) AS b FROM t1 -> GROUP BY i HAVING ABS(a - b) <= 0.0001;+------+------+------+
| i | a | b |
+------+------+------+
| 1 | 21.4 | 21.4 |
| 2 | 76.8 | 76.8 |
| 3 | 7.4 | 7.4 |
| 4 | 15.4 | 15.4 |
| 5 | 7.2 | 7.2 |
+------+------+------+
5 rows in set (0.03 sec)

浮動小数点値はプラットフォームまたは実装の依存関係の影響を受けます。次のステートメントを実行するとします。

CREATE TABLE t1(c1 FLOAT(53,0), c2 FLOAT(53,0));
INSERT INTO t1 VALUES('1e+52','-1e+52');
SELECT * FROM t1;

一部のプラットフォームでは、SELECT ステートメントは inf および -inf を返します。ほかのプラットフォームでは、0 および -0 が返されます。

前述の問題は、マスターで mysqldump を使用してテーブルのコンテンツをダンプし、そのダンプファイルをスレーブにリロードすることによってレプリケーションのスレーブを作成しようとすると、浮動小数点カラムを含むテーブルが 2 つのホストで異なる内容になる可能性があることを示しています。

B.5.6 オプティマイザ関連の問題

MySQL はコストベースのオプティマイザを使用して、クエリーを実行する最適な方法を判別しています。多くの場合、MySQL は実行可能な最適なクエリー計画を計算できますが、データに関する情報を十分に取得できず、データについて学習による推測を行う必要がある場合があります。

MySQL で「適切」に処理されなかった場合に、MySQL に指示を送るために使用できるツールを次に示します。

  • EXPLAIN ステートメントを使用して、MySQL がクエリーを処理する方法に関する情報を取得します。これを使用するには、キーワード EXPLAINSELECT ステートメントの前に追加します。

    mysql> EXPLAIN SELECT * FROM t1, t2 WHERE t1.i = t2.i;

    EXPLAIN については、セクション13.8.2「EXPLAIN 構文」で詳しく説明しています。

  • ANALYZE TABLE tbl_name を使用して、スキャンされるテーブルのキー分布を更新します。セクション13.7.2.1「ANALYZE TABLE 構文」を参照してください。

  • スキャンされるテーブルに FORCE INDEX を使用して、テーブルスキャンは該当するインデックスを使用した場合と比較して著しく負荷が高いことを MySQL に通知します。

    SELECT * FROM t1, t2 FORCE INDEX (index_for_column)
    WHERE t1.col_name=t2.col_name;

    USE INDEX および IGNORE INDEX も役に立つことがあります。セクション13.2.9.3「インデックスヒントの構文」を参照してください。

  • グローバルおよびテーブルレベルの STRAIGHT_JOINセクション13.2.9「SELECT 構文」を参照してください。

  • グローバルなシステム変数またはスレッド固有のシステム変数をチューニングできます。たとえば、キースキャンでキー検索が 1,000 回を超えて行われることはないと想定するようにオプティマイザに通知するには、--max-seeks-for-key=1000 オプションを指定して mysqld を起動するか、SET max_seeks_for_key=1000 を使用します。セクション5.1.4「サーバーシステム変数」を参照してください。

B.5.7 テーブル定義関連の問題

B.5.7.1 ALTER TABLE での問題

ALTER TABLE を使用して文字セットまたは文字カラムの照合順序を変更するときに、重複キーエラーを受け取った場合、原因は新しいカラムの照合順序が同じ値に対して 2 つのキーをマップしたか、テーブルが破損していることです。後者の場合は、そのテーブルに対して REPAIR TABLE を実行してください。

ALTER TABLE が次のエラーで停止した場合、問題は ALTER TABLE の初期の処理中に MySQL がクラッシュしたことである可能性があり、A-xxx または B-xxx という名前の古いテーブルが残っていることがあります。

Error on rename of './database/name.frm'
to './database/B-xxx.frm' (Errcode: 17)

この場合は、MySQL のデータディレクトリに移動して、A- または B- で始まる名前を持つすべてのファイルを削除します。(それらのファイルを削除せずに、別の場所に移動することもできます。)

ALTER TABLE は次のように動作します。

  • 要求された構造の変更を適用した A-xxx という名前の新しいテーブルを作成します。

  • 元のテーブルから A-xxx にすべての行をコピーします。

  • 元のテーブルの名前を B-xxx に変更します。

  • A-xxx を元のテーブル名に変更します。

  • B-xxx を削除します。

名前変更の操作に問題があった場合、MySQL は変更を取り消そうとします。重大な問題がある場合 (発生することはないはずですが)、MySQL は古いテーブルを B-xxx として残すことがあります。システムレベルでテーブルファイルを単純に名前変更することによって、データは元に戻ります。

トランザクションテーブルに対して ALTER TABLE を使用したとき、または Windows を使用しているときに、LOCK TABLE が発行されていた場合、ALTER TABLE はテーブルをロック解除します。これが行われるのは、InnoDB およびこれらのオペレーティングシステムは使用されているテーブルをドロップできないためです。

B.5.7.2 TEMPORARY テーブルに関する問題

次のリストは、TEMPORARY テーブルの使用に関する制限を示しています。

  • TEMPORARY テーブルのタイプは、MEMORYMyISAMMERGE、または InnoDB のみです。

    MySQL Cluster では、一時テーブルはサポートされません。

  • 同じクエリーで TEMPORARY テーブルを複数回参照することはできません。たとえば、次のステートメントは動作しません。

    mysql> SELECT * FROM temp_table, temp_table AS t2;ERROR 1137: Can't reopen table: 'temp_table'

    このエラーは、ストアドファンクション内で別のエイリアスで一時テーブルが複数回参照された場合にも発生します。これは、ファンクション内の別のステートメントで参照されていても発生します。

  • SHOW TABLES ステートメントでは TEMPORARY テーブルは一覧表示されません。

  • RENAME を使用して TEMPORARY テーブルの名前を変更することはできません。ただし、代わりに ALTER TABLE を使用できます。

    mysql> ALTER TABLE orig_name RENAME new_name;
  • レプリケーションで一時テーブルを使用する場合の既知の問題があります。詳細は、セクション17.4.1「レプリケーションの機能と問題」を参照してください。

  • 一時テーブルがストアドファンクションの外部で作成されて、複数の呼び出し元関数および呼び出し先関数で参照される場合は、次のエラーが発生することがあります。

    ERROR 1137: Can't reopen table: 'temp_table'

B.5.8 MySQL の既知の問題

このセクションでは、最新バージョンの MySQL の既知の問題を一覧表示します。

プラットフォーム固有の問題については、セクション2.1「一般的なインストールガイド」およびセクション24.4「MySQL のデバッグおよび移植」のインストールおよび移植の手順を参照してください。

次の問題は既知の問題です。

  • IN のサブクエリーの最適化は、= ほど効果はありません。

  • lower_case_table_names=2 (データベース名およびテーブル名に大文字/小文字のどちらが使用されたかを MySQL が認識するようになります) を使用していても、MySQL が関数 DATABASE() のデータベース名、またはさまざまなログ内 (大文字/小文字が区別されないシステムの) で使用された表記を識別できません。

  • スレーブで制約に別の名前がある可能性があるため、FOREIGN KEY 制約のドロップがレプリケーションで動作しません。

  • REPLACE (および REPLACE オプションを指定した LOAD DATA) で ON DELETE CASCADE がトリガーされません。

  • DISTINCT リストに指定されたすべてのカラムのみを使用しない場合、GROUP_CONCAT() 内で ORDER BY を指定した DISTINCT が動作しません。

  • 大きい整数値 (263 から 264−1 まで) を 10 進数カラムまたは文字列カラムに挿入する場合、数値は符号付き整数のコンテキストで評価されるため、負の値として挿入されます。

  • ANALYZE TABLEOPTIMIZE TABLE、および REPAIR TABLE が、INSERT DELAYED を使用している非トランザクションテーブルで問題となることがあります。

  • ステートメントベースのバイナリロギングでは、マスターは実行されたクエリーをバイナリログに書き込みます。これは、ほとんどの場合に理想的に動作する非常に高速かつコンパクトで効率的なロギング方法です。ただし、データの変更が非決定的であるようにクエリーが設計されている (通常、レプリケーション以外でも推奨されるやり方ではありません) 場合、マスターおよびスレーブのデータで相違が発生する可能性があります。

    例:

    • ゼロ値または NULL 値を AUTO_INCREMENT カラムに挿入する CREATE TABLE ... SELECT ステートメントまたは INSERT ... SELECT ステートメント。

    • ON DELETE CASCADE プロパティーが指定された外部キーを持つテーブルから行を削除する場合の DELETE

    • 挿入されるデータに重複キー値がある場合の REPLACE ... SELECTINSERT IGNORE ... SELECT

    これは、前述したクエリーに決定性順序を保証する ORDER BY 句がない場合にのみ発生することがあります

    たとえば、ORDER BY が指定されていない INSERT ... SELECT の場合、マスターおよびスレーブでのオプティマイザの選択によって、SELECT が異なる順序で行を返すことがあります (それにより、行が異なるランクを持つことになり、AUTO_INCREMENT カラムで異なる数値が取得されます)。

    次の場合にのみ、マスターとスレーブでクエリーの最適化が異なる結果となります。

    • マスターとスレーブで、テーブルが異なるストレージエンジンを使用して格納される。(マスターとスレーブで異なるストレージエンジンを使用できます。たとえば、マスターでは InnoDB を使用するが、スレーブの使用可能なディスク領域が少ない場合は、スレーブで MyISAM を使用できます。)

    • MySQL のバッファーサイズ (key_buffer_size など) がマスターとスレーブで異なる。

    • マスターとスレーブで異なるバージョンの MySQL を実行していて、オプティマイザのコードがそれらのバージョンで異なる。

    この問題は、mysqlbinlog|mysql を使用したデータベースのリストアに影響することもあります。

    この問題を回避するもっとも簡単な方法は、行が常に同じ順序で格納または変更されるように、ORDER BY 句を前述の非決定性クエリーに追加することです。行ベースのロギング形式または混合したロギング形式を使用することでも、この問題が回避されます。

  • スタートアップオプションにファイル名を指定しない場合、ログファイル名はサーバーのホスト名に基づいています。ホスト名を別の名前に変更した場合に同じログファイル名のままにするには、--log-bin=old_host_name-bin などのオプションを明示的に使用する必要があります。セクション5.1.3「サーバーコマンドオプション」を参照してください。または、ホスト名の変更が反映されるように、古いファイルを名前変更します。バイナリログの場合は、バイナリログのインデックスファイルを編集して、そこにあるバイナリログファイル名も修正する必要があります。(スレーブサーバーのリレーログも同様です。)

  • LOAD DATA INFILE ステートメントのあとに残っている一時ファイルが、mysqlbinlog によって削除されません。セクション4.6.8「mysqlbinlog — バイナリログファイルを処理するためのユーティリティー」を参照してください。

  • RENAMETEMPORARY テーブル、または MERGE テーブルで使用されているテーブルで動作しません。

  • SET CHARACTER SET を使用したときに、データベース、テーブル、およびカラムの名前に変換された文字を使用できません。

  • LIKE ... ESCAPEESCAPE で、_ または % を使用できません。

  • データ値を比較するときに、最初の max_sort_length バイトのみが使用されます。これは、最初の max_sort_length バイトで値が有意に識別されない場合、GROUP BYORDER BY、または DISTINCT で値を信頼して使用できないことを意味します。これを回避するには、変数値を増やします。max_sort_length のデフォルト値は 1024 であり、サーバーの起動時または実行時に変更できます。

  • 数値計算は BIGINT または DOUBLE (通常、どちらも長さは 64 ビットです) で行われます。返される精度は関数によって異なります。一般的なルールとしては、ビット関数は BIGINT の精度、IF()ELT()BIGINT または DOUBLE の精度、および残りは DOUBLE の精度で実行されます。符号なしの long long 値がビットフィールド以外で 63 ビット (9223372036854775807) を超える値に解決される場合は、使用しないようにしてください。

  • 1 つのテーブルには、最大 255 個の ENUM カラムおよび SET カラムを作成できます。

  • 現在、MIN()MAX()、およびその他の集約関数では、MySQL はセット内の文字列の相対位置ではなく文字列値で ENUM カラムおよび SET カラムを比較します。

  • UPDATE ステートメントでは、カラムは左から右に更新されます。更新されたカラムを参照している場合は、元の値ではなく更新された値が取得されます。たとえば、次のステートメントでは KEY1ではなく2 がインクリメントされます。

    mysql> UPDATE tbl_name SET KEY=KEY+1,KEY=KEY+1;
  • 同じクエリーで複数の一時テーブルを参照することはできますが、特定の一時テーブルを複数回参照することはできません。たとえば、次のステートメントは動作しません。

    mysql> SELECT * FROM temp_table, temp_table AS t2;ERROR 1137: Can't reopen table: 'temp_table'
  • 結合で隠しカラムを使用している場合は、オプティマイザでの DISTINCT の処理が異なることがあります。結合では、隠しカラムは結果の一部としてカウントされますが (表示されていなくても)、通常のクエリーでは、隠しカラムは DISTINCT 比較で考慮されません。

    次に例を示します。

    SELECT DISTINCT mp3id FROM band_downloads WHERE userid = 9 ORDER BY id DESC;

    および

    SELECT DISTINCT band_downloads.mp3id FROM band_downloads,band_mp3 WHERE band_downloads.userid = 9 AND band_mp3.id = band_downloads.mp3id ORDER BY band_downloads.id DESC;

    2 番目の例では、MySQL Server 3.23.x を使用すると、結果セットに 2 つの同じ行が取得されることがあります (隠しカラム id の値が異なる可能性があるためです)。

    これは、結果に ORDER BY のカラムがないクエリーでのみ発生します。

  • 空のセットを返すクエリーに関する PROCEDURE を実行すると、PROCEDURE でカラムが変換されないことがあります。

  • MERGE タイプのテーブルの作成で、基礎テーブルが互換性のあるタイプであるかどうかがチェックされません。

  • ALTER TABLE を使用して、MERGE テーブルで使用されるテーブルに UNIQUE インデックスを追加し、次に MERGE テーブルに通常のインデックスを追加したときに、テーブルに古い UNIQUE ではないキーがあった場合、それらのテーブルのキー順序は異なります。これは、重複キーをできるだけ早く検出できるように、ALTER TABLE が通常のインデックスより UNIQUE インデックスを優先するためです。

関連キーワード:  エラー,メッセージ,SQLSTATE,HY000,MySQL,します,されました,テーブル,サーバー,できません