MySQL Log of invalid Queries

Error log doesn't do that: https://dev.mysql.com/doc/refman/8.0/en/error-log.html

The error log contains information indicating when mysqld was started and stopped and also any critical errors that occur while the server is running.

MySQL doesn't log invalid/failed queries anywhere.


If it's for debugging purposes, you might try setting up a MySQL Proxy, which could log this I think:

http://dev.mysql.com/downloads/mysql-proxy/


Basically, there are 2 ways.

1) setup some kind of proxy, which can log error queries. There are a lot of forks of the original mysql proxy (which was mentioned by @Mchl) - https://github.com/search?utf8=%E2%9C%93&q=MySQL+Proxy Also you can find latest version of the original mysql proxy here https://github.com/mysql/mysql-proxy

I dont like this way, because its kind of too complicated for quick debug

2) you can enable general log in mysql (which will log ALL queries). It will create big overhead and doesnt fit production requirements, but its fast and easy way to fix bugs in development environment.

Just login to your mysql and execute SET GLOBAL general_log = 'ON'; SHOW GLOBAL VARIABLES LIKE 'general_log%';

You will see logs location, like +------------------+------------------------+ | Variable_name | Value | +------------------+------------------------+ | general_log | OFF | | general_log_file | /mnt/ssd/mysql/s.log | +------------------+------------------------+

After that execute mysqladmin flush-logs -u root -p

When you will need to stop logs - just execute SET GLOBAL general_log = 'OFF';