MySQL 在 Ubuntu 11.04 上每 30 分钟重启一次

标签 mysql ubuntu monit apparmor

我遇到一个问题,MySQL 5.1.54 在 Ubuntu 11.04 上每 30 分钟重新启动一次。发生这种情况时,MySQL 日志中会出现以下内容:

111030 12:01:52 [Note] /usr/sbin/mysqld: Normal shutdown

111030 12:01:52 [Note] Event Scheduler: Purging the queue. 0 events
111030 12:01:52  InnoDB: Starting shutdown...
111030 12:01:54  InnoDB: Shutdown completed; log sequence number 0 875122
111030 12:01:54 [Note] /usr/sbin/mysqld: Shutdown complete

111030 12:01:55 [Note] Plugin 'FEDERATED' is disabled.
111030 12:01:55  InnoDB: Initializing buffer pool, size = 256.0M
111030 12:01:55  InnoDB: Completed initialization of buffer pool
111030 12:01:55  InnoDB: Started; log sequence number 0 875122
111030 12:01:55 [Note] Event Scheduler: Loaded 0 events
111030 12:01:55 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.54-1ubuntu4-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  (Ubuntu)

这就像发条一样每 30 分钟发生一次,所以显然是某些服务在重新启动它。

我检查了系统上每个用户(包括系统用户)的 crontab,没有一个有 crontab 设置,正如您在下面的输出中看到的:

# awk -F: '{print $1}' /etc/passwd | xargs -n 1 -i crontab -u {} -l  
no crontab for root
no crontab for daemon
no crontab for bin
no crontab for sys
no crontab for sync
no crontab for games
no crontab for man
no crontab for lp
no crontab for mail
no crontab for news
no crontab for uucp
no crontab for proxy
no crontab for www-data
no crontab for backup
no crontab for list
no crontab for irc
no crontab for gnats
no crontab for nobody
no crontab for libuuid
no crontab for syslog
no crontab for sshd
no crontab for landscape
no crontab for ubuntu
no crontab for statd
no crontab for myproxy
no crontab for condor
no crontab for messagebus
no crontab for avahi
no crontab for joe
no crontab for smmta
no crontab for smmsp
no crontab for postfix
no crontab for deploy
no crontab for mysql
no crontab for redis

每次重新启动时,我的 dmesg 都包含以下内容。我不是 apparmor 专家,但我相信这是每次 MySQL 服务启动时获得的正常消息:

[1165328.780405] type=1400 audit(1319976114.984:74): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=31985 comm="apparmor_parser"

此外,这里是/etc/init/mysql.conf 中 MySQL upstart 配置的内容:

# MySQL Service

description     "MySQL Server"
author          "Mario Limonciello <superm1@ubuntu.com>"

start on (net-device-up
          and local-filesystems
      and runlevel [2345])
stop on runlevel [016]

respawn

env HOME=/etc/mysql
umask 007

# The default of 5 seconds is too low for mysql which needs to flush buffers
kill timeout 300

pre-start script
    #Sanity checks
    [ -r $HOME/my.cnf ]
    [ -d /var/run/mysqld ] || install -m 755 -o mysql -g root -d /var/run/mysqld
    /lib/init/apparmor-profile-load usr.sbin.mysqld
    LC_ALL=C BLOCKSIZE= df --portability /var/lib/mysql/. | tail -n 1 | awk '{ exit ($4<4096) }'
end script

exec /usr/sbin/mysqld

post-start script
   for i in `seq 1 30` ; do
        /usr/bin/mysqladmin --defaults-file="${HOME}"/debian.cnf ping && {
            exec "${HOME}"/debian-start
            # should not reach this line
            exit 2
        }
        sleep 1
    done
    exit 1
end script

知道是什么原因造成的吗?它不会导致任何问题,除了 Monit 警报指出“PID 已更改服务 mysqld”(我有 Monit 监视 mysqld——但它报告 mysqld 进程没有错误,除了每 30 分钟,它有它的自 MySQL 重新启动以来 PID 已更改。

提前致谢。

最佳答案

您使用的是 chef 还是 puppet,这可能会触发重启?

关于MySQL 在 Ubuntu 11.04 上每 30 分钟重启一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7944893/

相关文章:

mysql - 无法添加或更新子行 : a foreign key constraint fails. 映射多个 onetoone 引用的最佳做法是什么

azure - 从镜像构建后 ssh 到 azure-vm

node.js - 请求头太大,从服务器得到一个空响应

php-fpm 的监控配置

node.js - 让 Node 应用程序在 Linux 服务器上永久运行的更好方法是什么?

iphone - 将SQLite客户端数据库与MySQL服务器数据库同步

mysql - 如何查询group by 2条件?

mysql - 从 MAX(ID)、MIN(ID) MYSQL 查询中获取更多信息?

ruby-on-rails-3 - ActiveRecord 不会连接到 postgresql DB 但 rake db :migrate works

docker - 在docker中启动monit作为前台进程