数据库无规律重启。现象:数据库无规律重启。疑点:1、mysql占用服务器内存过多,导致操作系统为了保证服务器的稳定运行,会杀掉占用内存最大的mysql程序。2、mysql瞬间写入过多,导致io异常,被系统重启。3、人为重启数据库。4.数据库被定时任务重启。故障排除:1、查看mysql-error.log,发现一切正常,mysql可以正常写入重启日志。这样就可以排除数据库核心的可能性。2.从/var/log/messagesFeb201:27:01ip-172-30-0-106kernel:[21129733.556112]audit:type=1400audit(1517506021.319:806):apparmor="STATUS"找到类似日志operation="profile_replace"profile="unconfined"name="/usr/sbin/mysqld"pid=6041comm="apparmor_parser"Feb201:27:01ip-172-30-0-106kernel:[21129733.808389]审计:type=1400audit(1517506021.571:807):apparmor="STATUS"operation="profile_replace"profile="unconfined"name="/usr/sbin/mysqld"pid=6078comm="apparmor_parser"2月2日14:51:52ip-172-30-0-106sz[3618]:[root]mysql-bin.010762/ZMODEM:得到ZSKIPFeb214:51:52ip-172-30-0-106sz[3618]:[root]mysql-bin.010762/ZMODEM:335Bytes,192BPS怀疑是Apparmor重启了数据库,还是Apparmor没有配置相关权限,导致数据库无法读/写任何东西,于是重启数据库..openpermissions过了几天,还是自动重启了,所以还是没有发现问题。3、通过journalctl命令查找系统的所有日志信息,找到如下:SystemlogFeb0201:26:17ip-172-30-0-106systemd[1]:StartingDailyaptactivities...Feb0201:26:30ip-172-30-0-106systemd[1]:重新加载。2月02日01:26:30ip-172-30-0-106systemd[1]:snapd.refresh.timer:添加3h12min20.171706s随机时间。Feb0201:26:30ip-172-30-0-106systemd[1]:启动ACPI事件守护进程。Feb0201:26:30ip-172-30-0-106systemd[1]:停止MySQL社区服务器...Feb0201:27:01ip-172-30-0-106systemd[1]:停止MySQL社区服务器。Feb0201:27:01ip-172-30-0-106审计[6041]:AVCapparmor="STATUS"operation="profile_replace"profile="unconfined"name="/usr/sbin/mysqld"pid=6041comm="apparmor_parser"Feb0201:27:01ip-172-30-0-106内核:审计:type=1400审计(1517506021.319:806):apparmor="STATUS"operation="profile_replace"profile="unconfined"name="/usr/sbin/mysqld"pid=6041comm="apparmor_parser"Feb0201:27:01ip-172-30-0-106CRON[6060]:pam_unix(cron:session):sessionopenedfor用户rootby(uid=0)Feb0201:27:01ip-172-30-0-106CRON[6061]:(root)CMD(/usr/bin/tsar--cron>/dev/null2>&1)Feb0201:27:01ip-172-30-0-106CRON[6060]:pam_unix(cron:session):用户rootFeb0201:27:01ip-172-30-0-会话关闭106审计[6078]:AVCapparmor="STATUS"operation="profile_replace"profile="unconfined"name="/usr/sbin/mysqld"pid=6078comm="apparmor_parser"Feb0201:27:01ip-172-30-0-106内核:审计:type=1400审计(1517506021.571:807):apparmor="STATUS"operation="profile_replace"profile="unconfined"name="/usr/sbin/mysqld"pid=6078comm=“apparmor_parser”Feb0201:27:01ip-172-30-0-106systemd[1]:Reloading.Feb0201:27:01ip-172-30-0-106systemd[1]:snapd.refresh.timer:添加46min21.323606s随机时间。Feb0201:27:01ip-172-30-0-106systemd[1]:StartedACPIeventdaemon.Feb0201:27:01ip-172-30-0-106systemd[1]:Reloading.Feb0201:27:01ip-172-30-0-106systemd[1]:snapd.refresh.timer:添加4h51min8.862102s随机时间。Feb0201:27:01ip-172-30-0-106systemd[1]:启动ACPI事件守护进程。Feb0201:27:01ip-172-30-0-106systemd[1]:启动MySQL社区服务器...Feb0201:27:06ip-172-30-0-106systemd[1]:启动MySQL社区服务器。Feb0201:27:06ip-172-30-0-106systemd[1]:Reloading.Feb0201:27:06ip-172-30-0-106systemd[1]:snapd.refresh.timer:添加4h32.769528s随机时间.Feb0201:27:06ip-172-30-0-106systemd[1]:启动ACPI事件守护进程。Feb0201:27:06ip-172-30-0-106systemd[1]:停止MySQLCommunityServer...Feb0201:27:10ip-172-30-0-106systemd[1]:停止MySQLCommunityServer。Feb0201:27:14ip-172-30-0-106systemd[1]:重新加载。Feb0201:27:14ip-172-30-0-106systemd[1]:snapd.refresh.timer:添加3h43min30.596261s随机时间。Feb0201:27:14ip-172-30-0-106systemd[1]:启动ACPI事件守护进程。Feb0201:27:14ip-172-30-0-106systemd[1]:启动MySQLCommunityServer...Feb0201:27:17ip-172-30-0-106系统temd[1]:启动MySQLCommunityServer.Feb0201:27:21ip-172-30-0-106systemd[1]:启动每日aptactivities.Feb0201:27:21ip-172-30-0-106systemd[1]:apt-daily.timer:添加5h3min16.296108s随机时间。Feb0201:27:21ip-172-30-0-106systemd[1]:apt-daily.timer:添加3h1min23.389954s随机时间。Feb0201:26:17ip-172-30-0-106systemd[1]:StartingDailyaptactivities...我发现每次数据库重启之前都有一个,所以我怀疑是系统中的一些日常检查,每日更新受命令影响:yinni99@ip-172-30-0-106:/var/log/apt$cat/etc/apt/apt.conf.d/10periodicAPT::Periodic::Update-Package-Lists"1";APT::Periodic::Download-Upgradeable-包“0”;APT::Periodic::AutocleanInterval“0”;确保系统没有启用自动更新。..问题又回到了原点!!!%>_<%4,不要放弃,感觉问题出在刚才的日志中,从中可以看到关键字aptactivities,百度一下。找了一堆罗嗦。怀疑apt自动更新底层依赖库,导致数据库重启。到/var/log/apt/查看日志,发现文件更新时间越来越接近真实。查看history.log和term.log的内容分别如下:history.logStart-Date:2018-02-0201:26:29Commandline:/usr/bin/unattended-upgradeUpgrade:curl:amd64(7.47.0-1ubuntu2.5,7.47.0-1ubuntu2.6),libcurl3-gnutls:amd64(7.47.0-1ubuntu2.5,7.47.0-1ubuntu2.6)Error:Sub-process/usr/bin/dpkgreturnedanerrorcode(1)结束日期:2018-02-0201:27:17term.log日志开始:2018-02-0201:26:29(正在读取数据库......当前安装了400278个文件和目录。)准备解压....../curl_7.47.0-1ubuntu2.6_amd64.deb...解压curl(7.47.0-1ubuntu2.6)over(7.47.0-1ubuntu2.5)...准备解压.../libcurl3-gnutls_7.47.0-1ubuntu2.6_amd64.deb...解压libcurl3-gnutls:amd64(7.47.0-1ubuntu2.6)over(7.47.0-1ubuntu2.5)...处理man-db(2.7.5-1)的触发器。..处理libc-bin(2.23-0ubuntu10)的触发器...设置mysql-server-5.7(5.7.21-0ubuntu0.16.04.1)...mysql_upgrade:出现错误:1045:连接到MySQL服务器时,用户'debian-sys-maint'@'localhost'(使用密码:YES)的访问被拒绝升级过程遇到错误并且不会继续。mysql_upgrade失败,退出状态为11dpkg:错误处理包mysql-server-5.7(--configure):子进程安装后安装脚本返回错误退出状态1dpkg:依赖性问题阻止配置mysql-server:mysql-server依赖于mysql-server-5.7;然而:包mysql-server-5.7尚未配置。dpkg:错误处理包mysql-server(--configure):依赖性问题-保持未配置设置libcurl3-gnutls:amd64(7.47.0-1ubuntu2.6)...设置curl(7.47.0-1ubuntu2.6)...处理libc-bin(2.23-0ubuntu10)的触发器...处理时遇到错误:mysql-server-5.7mysql-serverLog结束:2018-02-0201:27:17问题已经确定,是apt的更新,引导数据库重新启动,查找相关资料:http://wiki.ubuntu.org.cn/Ubu...:AutomaticSecurityUpdates/zhhttps://help.ubuntu.com/commu...(这是一个交互式对话框),它将创建/etc/apt/apt.conf.d/20auto-upgrades,内容如下:打开/etc/apt/apt。conf.d/20auto-upgrades修改APT::Periodic::Unattended-Upgrade"1";选项为0.so:最终结果系统安全更新影响mysql
