mysql - Windows Insider 服务每 30 分钟自动启动一次,导致 mysql 崩溃

标签 mysql windows service

我在两台服务器(Windows Server 2016 和 Windows Server 2012)上有一个网站。在 2016 年的服务器上,mysql 每 30 分钟就会崩溃一次。在试图找出可能导致它的原因时,我注意到“Windows Insider Service”每次在 mysql 崩溃之前都会进入运行状态。

奇怪的是,Windows Insider 服务设置为手动启动类型,所以我不明白为什么它每 30 分钟启动一次,但这就是我在事件日志中看到的内容就在每次 mysql 崩溃之前。

"The Windows Insider Service service entered the running state."  Event ID 7036

当我说“就在之前”时,我的意思是在同一秒,但在事件日志中的 mysql 崩溃之前列出。我假设这意味着它发生在 mysql 崩溃之前的几分之一秒。

幸运的是,我在我的服务器上运行 ipSentry,它会自动检测 mysql 崩溃并立即重新启动它。因此mysql会自动重新启动,然后在mysql进入运行状态后大约55秒,Windows Insider Service进入停止状态(或者至少是在Windows事件日志中记录的时候)。

而在mysql进入运行状态正好30分钟后,Windows Insider Service也进入运行状态,导致mysql再次崩溃。

此外,mysql 在我的 2012 服务器上没有崩溃,大概是因为该版本的操作系统上没有 Windows Insider Service,所以我很确定这就是导致 mysql 崩溃的原因。

为了证实我的怀疑,我显然想阻止此服务启动。我的问题是,我怎样才能找出导致它启动的原因,如果我找不到,那么有没有办法确保它不会启动?

更新:我注意到 Windows 错误报告服务 也在 Windows Insider 服务启动的同一秒启动(但列在 Insider 服务之前),并且该服务是失败后2分钟后触发自动重启。我还注意到,在 Windows Insider 服务进入停止状态正好 1 分钟后,Windows 错误报告服务也进入停止状态。

所以这似乎是过程:

  1. Windows 错误报告服务启动
  2. Windows 预览体验成员服务启动
  3. MySQL 服务停止(步骤 1 至 3 同时进行)
  4. ipSentry 自动重启 MySQL
  5. Windows Insider Service 启动后正好 1 分钟,它就停止了
  6. Windows 错误报告启动恰好 2 分钟后停止
  7. MySQL 启动后正好 30 分钟,整个循环再次开始

这些是 Windows 错误报告服务的设置。

enter image description here

很明显,我在这些设置中没有看到任何会导致 Windows 错误报告服务在 2 分钟后停止的情况,而且我也没有看到任何设置会导致它在 MySQL 启动后 30 分钟后重新启动。我也不明白为什么这两项服务(错误报告和内部服务)似乎紧密相连。

我的主要目标是阻止 MySQL 崩溃。我只是提出这些服务,因为它们似乎是原因,而且我不明白他们为什么要做他们正在做的事情,所以我不知道如何阻止它。

最佳答案

事实证明,Windows Insider Service 并不是导致 MySQL 每 30 分钟崩溃一次的原因,因此整个问题完全是徒劳无功,但为了其他可能偶然发现它的人的利益,我将在这里发布我的解决方案。

事实证明,Windows 上安装的 mysql 仍然默认刷新时间为 1800 秒(在 nix 机器上,该值默认为 0)。通常这不是问题,但因为我使用的是联合表,所以这是一个问题。我猜 mysql 不知道如何刷新联合表,因此崩溃了。因此,我在 my.ini 中设置了 flushtime = 0,问题就消失了。

此错误已在此处报告:https://bugs.mysql.com/bug.php?id=47525&thanks=3&notify=87

关于mysql - Windows Insider 服务每 30 分钟自动启动一次,导致 mysql 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51179881/

相关文章:

php - 将数据库结果添加到数组

python - MySql 查询的 Flask HTML 表单字段在 macOS Sierra 上返回错误

c++ - C++ 中的 Pause()、Sleep() 和 Wait() 有什么区别?

sql - 将文件附加到 SQL 操作工作室

android - 通过服务保持屏幕开启

mysql - 无法登录mysql中的任何帐户

mysql - 插入错误语法后选择 count(*) 并选择 sum(my_data)#1064

python - Pymqi 在库导入时抛出异常 ImportError

grails - 在 groovy 类中访问 grailsApplication 或 Service

android - 我的应用程序的线程、异步任务或 intentService?