Я пытаюсь отслеживать, работает ли наш сервер mysql. Для этого я использую следующую команду:
mysqladmin ping
Он вернет следующее:
mysqld is alive
Это просто проверяет, запущен ли процесс в данный момент, или также проверяет, принимает ли сервер соединения?
«mysqladmin ping» пытается подключиться к выбранному серверу MySQL. Фактический сервер можно указать с помощью опции -h (например, mysqladmin ping -h db.example.com), по умолчанию - localhost.
Если сервер отвечает (даже с отказом в доступе или аналогичным сообщением), предполагается, что сервер работает, и "mysqladmin ping" завершается с кодом 0.
В противном случае предполагается, что сервер не работает и существует «mysqladmin ping» с кодом 1.
Если вы хотите быть уверенным, что ваш сервер MySQL работает, лучше всего написать небольшой скрипт для выполнения:
SELECT "1";
Вашему пользователю для подключения потребуется как минимум разрешение на ИСПОЛЬЗОВАНИЕ. Это не скажет вам, есть ли какие-либо проблемы с таблицами вашей базы данных, но мониторинг вашего приложения, вероятно, скажет вам это.
Вполне возможно, что это то, что mysqladmin ping и так делает.
«вверх» - очень широкий термин. Например. он может отвечать на ping, но на самом деле у него нет свободного места на диске, или все запросы блокируются или сбой каждую секунду и автоматически перезапускаются, или все таблицы фактически помечены как сбойные или, что еще хуже, отброшены, или datadir отключен от системы и т. д.
Или это может происходить как сумасшедшая подкачка, а процессор загружен несколькими запросами, поэтому он вряд ли может сканировать, поэтому он точно не работает.
Или например он может не отвечать на пинг, например из-за ограничения количества подключений, но ваши приложения используют постоянное подключение и работают отлично.
Или например он может не отвечать на пинг, например из-за некоторых проблем с клиентом на localhost, но опять же - все приложения фактически не испытывают никаких проблем.
Итак, иногда «пинг» является правильным ответом, но вы всегда должны учитывать эти случаи, думая о том, «контролировать, работает ли сервер».