Назад | Перейти на главную страницу

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

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

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

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

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

Очень маловероятно, что пакеты, которые не удалось установить kills что-либо после или из-за сбоя, связанного или нет. Кроме того, [ERROR] unknown variable '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, --assume-yes

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

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