0

今天早上我注意到我的 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
4

3 回答 3

3

我会尝试mysqld直接作为命令运行,并查看输出。例如,可能是InnoDB 损坏导致在生成后立即停止,此时upstart可能会尝试重新生成直到apparmour停止。

于 2016-04-05T13:41:56.477 回答
0

http://ubuntuforums.org/showthread.php?t=1475798

循环脚本问题可能

于 2013-10-10T15:33:37.107 回答
0

一个老问题,但一个反复出现的问题。这个问题有两个方面:

  • 一、为什么mysql进程内存不足?
  • 其次,为什么mysql进程无法重新启动?

第一个是针对配置中的过度杀伤力的。过大的缓冲区配置会使 mysql 请求比系统提供的更多的内存。验证此问题以深入了解如何找到最适合您的环境。

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

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

    type tail -f /var/log/syslog
    

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

    service start mysql
    

如果这种方法没有提供任何有用的线索,请尝试以下操作:

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

    su mysql
    mysqld -v
    

如此处所示

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

于 2017-09-05T04:31:40.063 回答