mysql时间跳跃停止服务很慢_MySQL时间跳跃无法停止问题解决

Kaijia昨天安装新VestaCP服务器后遇到了罕见MySQL无法退出重启的问题。通常情况下执行 service

mysql

stop

时MySQL会立即停止,在储存语料、数据的MySQL实例上最多也就需要半分钟将缓存写回硬盘后停止,然而Kaijia这台全新安装的MySQL服务器在发送退出命令后始终没有任何响应,直到十分钟后才会由 systemctl

超时杀死进程。

围观了一下MySQL日志,提示了未能停止的原因是在等待 page_cleaner

完成清理缓冲池:

2017-10-18T12:36:44.721465Z 0 [Note] InnoDB: Buffer pool(s) dump completed at 171018 20:36:44

2017-10-18T12:37:45.372406Z 0 [Note] InnoDB: Waiting for page_cleaner to finish flushing of buffer pool

明显对于一台尚无写入数据的MySQL,存在10分钟还清理不玩的缓冲池是不可能的。Kaijia再将往前日志往前翻回到正常记录的最后:

2017-10-18T20:30:52.647775Z 0 [Note] /usr/sbin/mysqld: ready for connections.

Version: ‘5.7.19-0ubuntu0.16.04.1’ socket: ‘/var/run/mysqld/mysqld.sock’ port: 3306 (Ubuntu)

上下对比发现正常日志的时间( 20:30:52

)与停止出现问题时的时间( 12:36:44

)差了8个小时,即北京时间与协调世界时(UTC)的时差。对此Kaijia理解服务器NTP设定的时区于服务器物理时间有差异,MySQL开机启动于NTP之前(记录的是物理时间,即本例中快了8小时),NTP运行后修改了时间(向后减去8小时),因此出现MySQL退出时要求清空比生成时间“还早”的缓存而导致了锁死。

发现是时间的问题,Kaijia便利用 dpkg

将时区调整回UTC:

dpkg-reconfigure tzdata

在图形化界面中选择 None

-> UTC

。亦可避免图形界面方式调整时间:

echo "UTC" > /etc/timezone

dpkg-reconfigure -f noninteractive tzdata

命令一执行后MySQL立刻停止,可以说是立竿见影。之后可以再次执行 dpkg-reconfigure

将时区调整回东八区或所在时区。由于早前NTP已经完成对时,在重启Linux操作系统前MySQL都将可以正常停止或重启。

注意:本文来自Kaijia。本站无法对本文内容的真实性、完整性、及时性、原创性提供任何保证,请您自行验证核实并承担相关的风险与后果!

CoLaBug.com遵循[CC BY-SA 4.0]分享并保持客观立场,本站不承担此类作品侵权行为的直接责任及连带责任。您有版权、意见、投诉等问题,请通过[eMail]联系我们处理,如需商业授权请联系原作者/原网站。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值