我知道 MySQL 5.0 中有一个错误,它会导致中止的连接无法记录在错误日志中(http://bugs.mysql.com/bug.php?id=24761)。
但是,中止的连接仍应记录在通用查询日志中。当我尝试为此配置日志记录时,我仍然没有在通用日志中看到中止的连接。这是我从 my.cnf 配置的部分:
日志 = /var/log/mysql_general.log
log_warnings = 2
完成这些更改后,我重新启动了 mysqld,然后通过 telnet 连接到端口 3306 上的服务器并关闭连接进行测试。执行完这些操作后,我运行:
show global status like '%abort%';
我看到计数器增加:
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| Aborted_clients | 0 |
| Aborted_connects | 4 |
+------------------+-------+
2 rows in set (0.00 sec)
但是,我在常规日志中看不到任何内容。如果我输入了错误的密码,则确实会显示在日志中。但没有关于中止连接的任何信息:
/usr/sbin/mysqld, Version: 5.0.45-community-log (MySQL Community Edition (GPL)). started with:
Tcp port: 0 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
140126 19:19:57 2 Connect root@localhost on
2 Query select @@version_comment limit 1
140126 19:20:08 2 Query show global status like '%abort%'
140126 19:20:11 2 Quit
140126 19:27:29 4 Connect Access denied for user 'root'@'localhost' (using password: YES)
140126 19:27:48 5 Connect root@localhost on
5 Query select @@version_comment limit 1
140126 19:27:51 5 Query show global status like '%abort%'
140126 19:28:01 5 Query show global status like '%abort%'
140126 19:28:02 5 Quit
140126 23:13:39 7 Connect root@localhost on
7 Query select @@version_comment limit 1
140126 23:13:42 7 Query show global status like '%abort%'
140126 23:13:48 7 Quit
所以我不知道还能尝试什么来让这个东西记录中止的连接,无论是错误日志、常规日志还是其他日志。有人能帮帮我吗?
答案1
您确定该错误适用于您的 MySQL 版本吗?我认为不适用。如果是这样,则应该在您的错误日志中报告错误。
除非您采取措施确保错误不会记录到系统日志中,否则这些错误可能会被记录到系统日志中。请在 my.cnf 中检查这一点:
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
如果您不希望它出现在那里,请注释掉该日志文件中的以下行:
[mysqld_safe]
#syslog
并将其添加到 my.cnf:
[mysqld_safe]
log_error=/var/log/mysql/mysql_error.log
[mysqld]
log_error=/var/log/mysql/mysql_error.log