我发现了各种各样的事情,说你可以将警告logging到MySQL错误日志中,但是我还没有真正实现它。
我有错误日志工作,和MySQL打印的东西在启动和关机,偶尔在其他时间,但如果我例如SELECT CAST('123' AS DATE);
然后SHOW WARNINGS;
我可以看到警告,但它不会显示在任何日志中。
我也尝试启用通用日志和慢速查询日志,但这些也不显示警告。
我已经尝试了log_warnings = 1
和log_warnings = 2
,但仍然没有警告被logging。
我究竟做错了什么?
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...
消息logging,但不是警告,你可以看到通过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不会将这些警告logging到错误日志中。 只有像validation失败,中止连接等事情