De: link
/path/to/mysql --show-warnings –uUserName –pPassword DBNAME < /path/to/dump_file.sql >> /path/to/load_warnings.log 2>&1
Encontrei várias coisas que dizem que você pode registrar avisos no log de erros do MySQL, mas não consegui fazer isso acontecer.
Eu tenho o log de erros funcionando, e o MySQL imprime coisas na inicialização e no desligamento e ocasionalmente em outros momentos, mas se eu, por exemplo, SELECT CAST('123' AS DATE);
e, em seguida, SHOW WARNINGS;
Posso ver o aviso, mas ele não aparece em nenhum registro.
Eu também tentei ativar o log geral e o log de consultas lentas, mas eles também não mostram os avisos.
Eu tentei com log_warnings = 1
e log_warnings = 2
, mas ainda não há avisos registrados.
O que estou fazendo de errado?
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 |
...
+-----------------------------------------+-------------------------------+
Editar:
mysql> show global status like 'Aborted%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| Aborted_clients | 24 |
| Aborted_connects | 15 |
+------------------+-------+
2 rows in set (0.08 sec)
Editar:
Esclarecimento: recebo [Warning] Aborted connection 1 to db...
e [Warning] Access denied for user...
mensagens registradas, mas não os avisos que você pode ver por meio de SHOW WARNINGS
após, por exemplo, inserindo algo ou executando LOAD DATA INFILE...
, que é o que estou procurando.
De: link
/path/to/mysql --show-warnings –uUserName –pPassword DBNAME < /path/to/dump_file.sql >> /path/to/load_warnings.log 2>&1
Cheguei à conclusão de que isso não é possível. O MySQL não registra esses avisos no log de erros. Apenas coisas como por exemplo falhas de autenticação, conexões anuladas, etc.