Как отследить источник Aborted_connects mysql server

Исследуя эту проблему, я заметил несколько неладных моментов, которые казались связанными, но на самом деле таковыми не были.

Самый большой измеримый признак был

mysqladmin -p ext | grep Abort | grep -v 0
Enter password:
| Aborted_clients                                       | 2                                                                                                                                                                                                                          |
| Aborted_connects                                   | 112776

Эти две переменные состояния на самом деле не связаны (см. страницу руководства, где они объясняются). Первая была связана с ошибками, которые видел клиент: сервер через некоторое время закрывал неактивные соединения, и я исправил это, увеличив конфигурационную переменную wait_timeout.

Вторая ошибка не указывает на то, что активное соединение вообще закрыто. Скорее, это показывает, что соединение не может быть установлено по какой-то причине. Возможно, это сеть, или, возможно, проблема с разрешениями или что-то еще. Первое, что я сделал, это проверил наличие потери пакетов между сервером базы данных и веб-сервером; сеть работала нормально.

Исключив это (по крайней мере, к моему удовлетворению), я обратился к tcpdump, чтобы посмотреть, что происходит с этими соединениями. Я выполнил следующую команду в одном окне своего сеанса экрана, чтобы увидеть, когда соединение было прервано:

tcpdump -s 1500 -w tcp.out port 3306

После того, как я увидел прерванное соединение, я отменил tcpdump и посмотрел полученный файл. Проверка сеанса с помощью tcpdump -r показала, что сеанс TCP завершен; на этом слое ничего плохого не происходило. Поэтому я использовал утилиту strings для просмотра текста, отправленного в пакетах:

strings tcpdump.out

Host 'XXX.XX.XX.XXX' is not allowed to connect to this MySQL server

Я проверил этот IP-адрес.... но перед этим, я решил проверить таблицы GRAND сервера и действительно... этот IP-адрес который является машиной в локальной сети не разрешен для подключения.

 

Яндекс.Метрика