web-dev-qa-db-ja.com

MySQL 5.5で警告をログファイルの1つに記録するにはどうすればよいですか?

警告をMySQLエラーログに記録できるということをいろいろ見つけましたが、実際にそれを実現することはできませんでした。

私はエラーログを機能させており、MySQLは起動時とシャットダウン時、そして時折他の時間にそれを出力しますが、 SELECT CAST('123' AS DATE);次にSHOW WARNINGS;警告が表示されますが、ログには表示されません。

また、一般ログと低速クエリログを有効にしてみましたが、これらにも警告は表示されません。

log_warnings = 1log_warnings = 2で試しましたが、警告はログに記録されません。

私は何が間違っているのですか?

mysql> show variables like '%error%';
+--------------------+--------------------------+
| Variable_name      | Value                    |
+--------------------+--------------------------+
| error_count        | 0                        |
| log_error          | /var/log/mysql/mysql.err |
| max_connect_errors | 10                       |
| max_error_count    | 1024                     |
| slave_skip_errors  | OFF                      |
+--------------------+--------------------------+

mysql> show variables like '%warn%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings  | 1     |
| sql_warnings  | OFF   |
| warning_count | 0     |
+---------------+-------+
3 rows in set (0.06 sec)

mysql> show variables like '%log%';
+-----------------------------------------+-------------------------------+
| Variable_name                           | Value                         |
+-----------------------------------------+-------------------------------+
...
| general_log                             | ON                            |
| general_log_file                        | /var/log/mysql/general.log    |
...
| log                                     | ON                            |
...
| log_error                               | /var/log/mysql/mysql.err      |
| log_output                              | FILE                          |
| log_queries_not_using_indexes           | ON                            |
...
| log_warnings                            | 1                             |
...
| slow_query_log                          | ON                            |
| slow_query_log_file                     | /var/log/mysql/mysql-slow.log |
...
+-----------------------------------------+-------------------------------+

編集:

mysql> show global status like 'Aborted%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| Aborted_clients  | 24    |
| Aborted_connects | 15    |
+------------------+-------+
2 rows in set (0.08 sec)

編集:

明確化:[Warning] Aborted connection 1 to db...および[Warning] Access denied for user...メッセージはログに記録されますが、SHOW WARNINGSを介して表示される警告は記録されません。何かを挿入したり、LOAD DATA INFILE...を実行したりしています。

5
Wodin

から: http://ushastry.blogspot.in/2011/02/mysql-bulk-import-and-logging-warnings.html

/path/to/mysql --show-warnings –uUserName –pPassword DBNAME < /path/to/dump_file.sql >> /path/to/load_warnings.log 2>&1
2
Dave

これは不可能だという結論に達しました。 MySQLはこれらの警告をエラーログに記録しません。たとえばのようなものだけ認証の失敗、接続の中止など。

0
Wodin