我在Ubuntu服务器上运行mysql,由于某种原因,mysql意外closures。 通常我可以重新启动它,但现在不会启动。 我不知道我正在运行什么版本,不知道如何找出答案。 我什至不能find任何日志的MySQL,所以我不知道怎么回事,因为我甚至在日志的正确位置。 我真的迷失在这里,有人能指引我走向正确的方向吗?
编辑:
好的,在发现我可以在syslog中查找一些信息后,我发现这可能是有帮助的:
Jun 18 12:37:39 ip-10-98-167-102 kernel: [6892262.992944] Out of memory: Kill process 2351 (mysqld) score 95 or sacrifice child Jun 18 12:37:39 ip-10-98-167-102 kernel: [6892262.992961] Killed process 2351 (mysqld) total-vm:689332kB, anon-rss:57548kB, file-rss:0kB Jun 18 12:37:39 ip-10-98-167-102 kernel: [6892263.072544] init: mysql main process (2351) killed by KILL signal Jun 18 12:37:39 ip-10-98-167-102 kernel: [6892263.073876] init: mysql main process ended, respawning Jun 18 12:37:40 ip-10-98-167-102 kernel: [6892263.872080] type=1400 audit(1340023060.184:20): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=7068 comm="apparmor_parser" Jun 18 12:37:41 ip-10-98-167-102 kernel: [6892265.330749] init: mysql main process (7072) terminated with status 1
该日志解释了为什么MySQL死亡。 它被杀害OOM的杀手 OOM杀手是Linux存在的一个有趣的组成部分,因为Linux过于承诺处理内存,然后,当他们真正需要内存时,杀死其中一个给其他内存。
它select哪一个杀死基于一个algorithm,似乎排名MySQL非常高。 可能是因为它使用了大量的RAM。
我build议在你的MySQL盒子上运行mysqltuner.pl(用wget mysqltuner.pl获取它),并且查看top的输出以查看哪些进程正在使用你所有的内存。
好吧,我为自己感到骄傲,因为我不是Linux大师。 事实certificate,有一个Java进程占用所有内存(不知道如何从一个Java进程开始看我怎么不用它在服务器上)。 这阻止了mysql进程启动足够的内存。 我杀了Java进程,MySQL能够正确启动。 我想现在我真正的问题是为什么java进程开始,为什么重要?
您的服务器可能内存不足。 看看free -t的输出
运行top会告诉你它在哪里使用。
考虑添加更多的物理内存。