Как отслеживать и автоматически перезапускать mysql? - PullRequest
1 голос
/ 22 января 2011

Я использую mysql в Debian.

Есть ли способ отслеживать mysql и автоматически перезапускать его, если он заблокирован? Например, иногда сервер начинает принимать 100% процессорного времени и начинает работать очень медленно. Если я перезапущу mysql, все прояснится, и сервер начнет работать нормально, но я не всегда присутствую, чтобы перезапустить его вручную.

Есть ли способ контролировать mysql, и если процессор превышает 95% в течение более 10 минут, то mysql автоматически перезапускается

Ответы [ 2 ]

2 голосов
/ 23 января 2011

Вы можете написать cronjob для использования

show processlist;

show processlist вернет столбец Time и Id,
Вы можете добавить больше логики для проверки,
как запрос застрял на более чем 600 секунд, и запрос SELECT,
Вы можете использовать Id значение для выполнения kill $id;

Это безопаснее, чем вслепую перезапускать ваш сервер.

И если вы разделяете между чтением и записью (то есть SQL только для чтения будет использовать пользователя только с правами чтения), это может быть еще проще.

0 голосов
/ 12 декабря 2013

Используйте этот скрипт для проверки каждую минуту.

#!/bin/bash

#Checking whether MySQL is alive or not
if mysqladmin ping | grep "alive"; then
   echo "MySQL is up"
else
   sudo service mysql restart
fi

`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...