mysql以状态1终止?

时间:2013-10-10 15:25:18

标签: mysql ubuntu-12.04 apparmor

今天早上我注意到我的mysql服务器没有运行。看一下日志,我发现了以下信息。虽然令人不安的是mysqld服务耗尽了内存而被杀死了,但是mysql无法重启更令人不安。

关于为什么mysql无法重生的任何想法?如何测试以确保如果进程被终止,它将重新生成?

谢谢。

387 Oct 10 06:37:09 ip-xxx-xxx-xxx-xxx kernel: [12218775.475042] Out of memory: Kill process 810 (mysqld) score 232 or sacrifice child
388 Oct 10 06:37:09 ip-xxx-xxx-xxx-xxx kernel: [12218775.475060] Killed process 810 (mysqld) total-vm:888108kB, anon-rss:139816kB, file-rss:0kB
389 Oct 10 06:37:09 ip-xxx-xxx-xxx-xxx kernel: [12218775.655663] init: mysql main process (810) killed by KILL signal
390 Oct 10 06:37:09 ip-xxx-xxx-xxx-xxx kernel: [12218775.655745] init: mysql main process ended, respawning
391 Oct 10 06:37:10 ip-xxx-xxx-xxx-xxx kernel: [12218776.044805] type=1400 audit(1381408630.181:13): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=27754 comm="apparmor_parser"
392 Oct 10 06:37:10 ip-xxx-xxx-xxx-xxx kernel: [12218776.676434] init: mysql main process (27763) terminated with status 1
393 Oct 10 06:37:10 ip-xxx-xxx-xxx-xxx kernel: [12218776.676489] init: mysql main process ended, respawning
394 Oct 10 06:37:11 ip-xxx-xxx-xxx-xxx kernel: [12218777.468923] init: mysql post-start process (27764) terminated with status 1
395 Oct 10 06:37:11 ip-xxx-xxx-xxx-xxx kernel: [12218777.512363] type=1400 audit(1381408631.649:14): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=27800 comm="apparmor_parser"
396 Oct 10 06:37:11 ip-xxx-xxx-xxx-xxx kernel: [12218777.681433] init: mysql main process (27804) terminated with status 1
397 Oct 10 06:37:11 ip-xxx-xxx-xxx-xxx kernel: [12218777.681491] init: mysql respawning too fast, stopped

3 个答案:

答案 0 :(得分:2)

我会尝试直接运行mysqld作为命令,并查看输出。它可以是例如InnoDB corruption leading to stopping immediately after spawningupstart可能会在apparmour停止之前重新生成import matplotlib.pyplot as plt import numpy as np mu, sigma = 0,100 x1 = mu + sigma*np.random.randn(1000) x2 = mu + sigma*np.random.randn(1000) x3 = mu + sigma*np.random.randn(1000) #Stack the data plt.figure() plt.hist([x1,x2,x3], bins=30, stacked=True, normed = True) plt.show()

答案 1 :(得分:0)

答案 2 :(得分:0)

一个老问题,但一个经常出现的问题。这个问题有两个面孔:

  • 首先,为什么mysql进程耗尽内存?
  • 其次,为什么mysql进程不能重新开始?

第一个是解决配置过度的问题。超大的缓冲区配置可以使mysql要求比系统提供的内存更多。验证this question,了解如何找到最适合您环境的信息。

第二个问题可能非常棘手。有很多可能阻止mysql启动的问题。可以执行以下步骤以找出原因。 第一条线索可以在mysql日志错误文件中找到,在大多数情况下都可以在/var/log/mysql/error.log中找到 但是,无论问题的性质如何,错误日志文件都可以为空。在这种情况下,尝试:

  1. 查看syslog:在终端提示符中

    type tail -f /var/log/syslog
    

    并在另一个终端尝试启动mysql:

    service start mysql
    
  2. 如果这种方法没有提供任何有用的线索,请尝试以下方法:

    1. 以详细模式从raw启动mysqld:

      su mysql
      mysqld -v
      
    2. here所示。

      输出消息有助于找出阻止mysql启动的根本原因。