Я нашел различные вещи, в которых говорится, что вы можете регистрировать предупреждения в журнале ошибок MySQL, но мне не удалось это сделать.
У меня работает журнал ошибок, и MySQL печатает в него данные при запуске и завершении работы, а иногда и в другое время, но если я, например, SELECT CAST('123' AS DATE);
а потом SHOW WARNINGS;
Я вижу предупреждение, но оно не отображается ни в каких журналах.
Я также пробовал включить общий журнал и журнал медленных запросов, но они тоже не показывают предупреждений.
Я пробовал с log_warnings = 1
и log_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...
что я ищу.
Из : 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
Я пришел к выводу, что это невозможно. MySQL не записывает эти предупреждения в журнал ошибок. Только такие вещи, как, например, сбои аутентификации, прерванные соединения и т. д.