関数 perror() は、システムコールやライブラリ関数の呼び出しにおいて、
最後に発生したエラーに関する説明メッセージを生成し、標準エラー出力に出力する。

perror_h

殆どのシステムエラーでは、内部テキストメッセージに加えて、
MySQLは以下のスタイルでシステムエラーコードを表示します。

message … (errno: #)
message … (Errcode: #)

システムのドキュメンテーションを確認するか、perrorユーティリティを使用することで
エラーコードの意味を割り出すことができます。

Can’t find file: ‘./mysql/host.frm’ (errno: 13)
ERROR 1064 (42000)

[root@colinux ~]# perror 13
OS error code 13: Permission denied
[root@colinux ~]#

perror

MYSQLのエラーレベルは、Error , Warning, Noteの3つに分類されていて、
SHOW WARNINGSにて確認することが出来ます。

SHOW WARNINGS は、メッセージを作成した最後のステートメントから生じたエラー、警告、そしてノート
メッセージを表示、または、もしテーブルを利用した最後のステートメントが何のメッセージも作成しなければ、
何も表示しません。関連ステートメントである SHOW ERRORS はエラーだけを表示します。

warnings

エラー警告、そしてノート メッセージの最高格納数は max_error_count システム変数によって
コントロールされています。デフォルトにより、その値は64です。格納するメッセージ数を変更したければ、
max_error_count の値を変更してください。次の例では ALTER TABLE ステートメントは3つの警告
メッセージを発生しますが、max_error_count が1に設定されている為、そのうちの1つしか格納されません。

mysql> DROP TABLE IF EXISTS no_such_table;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> SHOW WARNINGS;
+——-+——+——————————-+
| Level | Code | Message |
+——-+——+——————————-+
| Note | 1051 | Unknown table ‘no_such_table’ |
+——-+——+——————————-+
1 row in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'max_error_count';
+—————–+——-+
| Variable_name | Value |
+—————–+——-+
| max_error_count | 64 |
+—————–+——-+
1 row in set (0.01 sec)

mysql>

警告を無効にするには、max_error_count を0に設定してください。この場合、
warning_count はいくつの警告が起きたか指示しますが、どのメッセージも格納はされません。

SQL_NOTES セッション変数を0に設定して、Note レベルの警告が記録されないようにできます。

MySQLクラスタエラーコードのエラーメッセージを取得するためには、
perrorを–ndbオプションと起動してください。

perror_sql

参考サイト
7.18. perror — エラーコードの説明
4.11.2. エラー ログ
12.5.4.31. SHOW WARNINGS 構文
MySQL Server 5.0 管理監視ガイド

Comments are closed.

Post Navigation