Я знаю, что в MySQL 5.0 есть ошибка, из-за которой прерванные соединения не регистрируются в журнале ошибок (http://bugs.mysql.com/bug.php?id=24761).
Однако прерванные соединения по-прежнему должны регистрироваться в общем журнале запросов. Когда я попытался настроить для этого ведение журнала, я все еще не вижу прерванных соединений в общем журнале. Вот часть, которую я настроил из my.cnf:
журнал = /var/log/mysql_general.log
log_warnings = 2
Я перезапустил mysqld после внесения этих изменений, а затем проверил, подключившись к серверу через порт 3306 по telnet, а затем закрыл соединение. После этого я бегу:
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
Так что я понятия не имею, что еще попытаться получить эту вещь, регистрирующую прерванные соединения, будь то журнал ошибок, общий журнал или что-то еще, черт возьми. Кто-нибудь может мне помочь?
Вы уверены, что эта ошибка относится к вашей версии 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