我遇到了一个奇怪的情况,即通过apt-get
导致运行(生产!)mysqld 实例在某些 16.04 Linux 服务器上重新启动来安装软件包。
我们sudo apt-get install -y iotop
在四台服务器上运行。在三台服务器上安装失败,说明[ERROR] unknown variable 'rpl_semi_sync_slave_enabled=1'
. 此变量仅在这三台服务器上设置。此时我们正在运行的 mysql 服务关闭了!
第四台服务器没有相同的 mysql 配置。值得注意的是,该变量rpl_semi_sync_slave_enabled
不存在。易能够安装iotop
,但有趣的是我们的mysql服务并没有重新启动或关闭。
因此,似乎某些软件包在安装失败时会终止与安装无关的正在运行的进程!这让我非常担心在我们的生产服务器上安装更多的软件包,这些软件包运行我们不喜欢随时重新启动的进程。我如何知道软件包安装是否会重新启动这些进程,以及为什么会首先发生?
包kill
之后或由于失败而无法安装任何东西的可能性很小——无论是否相关。此外,在启动过程中,这[ERROR] unknown variable 'rpl_semi_sync_slave_enabled = 1;
似乎不是apt
MySQL的错误,而是 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
如果您不确定会发生什么,请不要使用。默认情况下,您将获得所有已安装、升级甚至删除的软件包的列表。你自愿选择忽略这一切。
归档时间: |
|
查看次数: |
527 次 |
最近记录: |