周一上班时,一位开发同事急匆匆地找到我,反映黑龙江某客户私有化环境的服务出现数据库连接失败的问题。我起初以为是客户调整了网络,但客户表示并未做出任何调整。经过使用ping测试也未发现网络问题,因此怀疑是业务代码导致的。询问后得知,客户最近发布了一个版本,虽然团队对发布的代码进行了多次review,但并未发现可疑点。
“Communications link failure”,这个异常信息让老司机们都感到熟悉,通常代表网络问题。然而,尽管我们找不到任何网络问题的迹象,我决定从MySQL自身的日志入手。果不其然,在MySQL的error日志中发现了一条读取JSON的SQL导致MySQL退出的记录。
原来,问题出在MySQL版本。其他环境使用的是较高版本,而这个环境却使用的是5.7.20版本。在查阅MySQL更新日志时,发现5.7.22版本中修复了一个老版本的JSON函数导致MySQL退出的bug。
遗憾的是,“Bug #22253965”在网络上已经搜索不到具体的内容了。一位国外开发者在MySQL论坛上提出了关于这个bug为何找不到的问题,并得到了回复。有兴趣的读者可以移步 MySQL论坛 进行了解。
解决方案?升级,升级,升级。
事后思考,时刻关注软件的更新列表很重要。不要因为软件的广泛使用而忽视升级。尽管升级过程可能充满挑战,但这是保持软件最佳状态的关键步骤。
推荐阅读: MySQL 5.7.22版本更新说明
标签:游戏攻略