MySQL Linux Client Timeout/Keepalive

Учитывая, что можно войти в систему как пользователь, затем получить это сообщение об ошибке, сообщение, вероятно, прибывает из файлов инициализации пользователя (/etc/profile, ~/.profile, ~/.bash_profile или подобный). Попытайтесь проследить эти сценарии профиля; как рассматриваемый пользователь, выполненный

bash --login -x
7
02.10.2012, 15:34
3 ответа

Можно установить универсальные сообщения проверки активности TCP, я думаю, что существует установка ядра для этого. Но они являются обычно намного менее частыми (часы). Существует ПРАКТИЧЕСКОЕ РУКОВОДСТВО Проверки активности TCP, которое, кажется, имеет детали.

С другой стороны, почему не только туннелируют Подключение mysql по SSH, затем можно ли использовать сообщения проверки активности SSH?

$ ssh -L1234:127.0.0.1:3306 -o ServerAliveInterval=300 user@mysql-server
... (in another terminal)
$ mysql -u user -p -h 127.0.0.1 -P 1234

Третья опция состояла бы в том, чтобы создать туннель (например, OpenVPN) к Вашему серверу, и затем это обработает проверку активности (и прозрачно повторное подключение, и т.д.).

PS: "наши драгоценные ресурсы" аргумент в пользу истекающих установленных соединений TCP за 30 минут являются БАКАЛАВРОМ НАУК. К сожалению — я был на их месте прежде — некоторое оборудование является БАКАЛАВРОМ НАУК также. Например, BCP 142/RFC 5382 дает минимальное время 2 часов 4 минуты (и это - то, только если брандмауэр не может определить, все еще ли хост).

4
27.01.2020, 20:17
  • 1
    я думал об использовании SSH, туннелирующего также, и я был планированием использования этого. Это требует, чтобы у меня был пользователь на сервере (я делаю, но не всегда имеет место). И я думаю, что это ограничивает Вас одним sql соединением (если Вы не передаете несколько портов и указываете их в команде mysql). –  Stephen Schrauger 02.10.2012, 22:32
  • 2
    мне действительно нравится идея изменить проверку активности TCP в моем ядре. Вы знаете, где я могу установить это? Это решило бы проблему проверки активности для любого другого сервиса, который я использую также. –  Stephen Schrauger 02.10.2012, 22:33
  • 3
    @dymutaos не, можно передать многочисленные связи по тому же соединению SSH. Просто выполните другой mysql клиент, соединившись с тем же портом. И Вам не нужны учетная запись на сервере MySQL, просто учетная запись вне Вашего брандмауэра. Я должен буду искать проверку активности установки TCP. –  derobert 02.10.2012, 22:36
  • 4
    @dymutaos добавил ссылку к практическому руководству, которое объясняет, как настроить сообщения проверки активности. Это немного старо, таким образом, названия/proc файлов, возможно, изменились немного... –  derobert 02.10.2012, 22:39

Клиентские значения по умолчанию MySQL CLI с автоподключением, если соединение потеряно во время сессии. Документация: MySQL Tips & Controlling Automatic Reconnection Behavior.

Действительные решения состояли бы в том, чтобы работать с власть имущими и выяснить решение, которое работает на членов команды разработки.

Естественно это заняло бы время, таким образом, временное решение, возможно, должно было бы быть обработано. Я рекомендовал бы отключить автоподключение MySQL (--skip-reconnect) и создание простого сценария удара для обработки повторного соединения. Не хорошая идея, но мог бы помочь.

#!/bin/bash

PROGRAM="/path/to/mysql"
ARGS="--skip-reconnect"

while [ 1 ]; do
 $PROGRAM $ARGS
 sleep 1
 echo -n "Lost Connection... Reconnect[Y]"
 read USER_INPUT
 case x$USER_INPUT in
  x)
   echo "Reconnecting..."
   ;;
  x[yY])
   echo "Reconnecting..."
   ;;
  *)
   echo "Stopping..."
   break
   ;;
 esac
done
3
27.01.2020, 20:17
[114016]Вы можете использовать [114481]libkeepalive[114482] для предварительной загрузки [114483]libkeepalive. Поэтому [114484], которая будет перехватывать вызовы [114485]socket()[114486] и автоматически вызывать [114487]setsockopt()[114488] с предпочтительными для вас настройками keepalive на сокет перед его возвращением.

  • Это делает [114489]не[114490] необходимым перекомпилировать приложение (в данном случае MySQL), оно полностью прозрачно.

    • Также смотрите [114491]TCP Keepalive HOWTO[114492].[114021].
  • 3
    27.01.2020, 20:17

    Теги

    Похожие вопросы