Почему некоторые установки apt-get перезапускают mySQL?

Я столкнулся с странной ситуацией, когда установка пакета через apt-get вызвала перезапуск запущенных (рабочих!) Экземпляров mysqld на некоторых серверах Linux версии 16.04.

Мы запустили sudo apt -get install -y iotop на четырех серверах. На трех серверах установка завершилась неудачно, указана [ERROR] неизвестная переменная 'rpl_semi_sync_slave_enabled = 1' . Эта переменная была установлена ​​только на этих трех серверах. В этот момент служба mysql, которую мы запускали, выключилась!

На четвертом сервере не было идентичной конфигурации mysql. Примечательно, что переменная rpl_semi_sync_slave_enabled отсутствовала. Apt удалось установить iotop , но, что интересно, наша служба mysql не перезапускала или закрывала.

Таким образом, кажется, что некоторые пакеты, при неудачной установке убивает запущенные процессы, которые кажутся несущественными для установки! Из-за этого я очень настороженно отношусь к установке дополнительных пакетов на наши производственные серверы, на которых выполняются процессы, которые мы не хотим перезапускать каждый раз. Как я могу узнать, перезапустит ли установка пакета эти процессы и почему это вообще происходит?

2
задан 22 May 2017 в 20:54
1 ответ

Очень маловероятно, что пакеты, которые не могут установить , убивают s что-либо после или из-за сбоя, связанного или нет. Кроме того, неизвестная переменная [ERROR] 'rpl_semi_sync_slave_enabled = 1; не похожа на ошибку apt , но на MySQL во время его запуска.

Вполне возможно, что MySQL был перезапущен на всех серверах, но не запустился только на одном, что привело к сбою установки - не наоборот.

Почему установка iotop вызывает перезапуск MySQL? В дистрибутивах (таких как ваш Ubuntu) у нас есть такая штука, которая называется дерево зависимостей : пакеты могут зависеть от других пакетов, которые зависят от других пакетов, которые могут быть взаимно необходимы другим пакетам. Иногда пакет зависит от определенной версии другого пакета, что приводит к обновлению уже установленного пакета при установке.

В этом случае iotop зависит от python . Тогда, например, python-mysqldb зависит от python и libmysqlclient18 , который зависит от mysql-common ... вы, вероятно, поняли, почему MySQL может иметь были обновлены вместе с кажущимся несвязанным iotop .

Как узнать, какие пакеты устанавливаются и обновляются во время apt-get install ?

-y , - -yes , - accept-yes

Автоматическое «да» для запросов. Предположим, yes в качестве ответа на все запросы и выполняются в неинтерактивном режиме. Если нежелательный ситуации, например, изменение удерживаемого пакета или удаление необходимого пакет, то apt-get будет прервано.

Не используйте -y , если вы не совсем уверены, что произойдет. По умолчанию вы получите список всех пакетов, которые будут установлены, обновлены или даже удалены. Вы добровольно игнорируете все это.

5
ответ дан 3 December 2019 в 09:32

Теги

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