我很难弄清楚为什么我的数据库不断崩溃。
最后status
就是这样:
* /usr/bin/mysqladmin Ver 8.42 Distrib 5.6.16, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version 5.6.16-1~exp1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 21 hours 19 min 24 sec
Threads: 8 Questions: 1431709 Slow queries: 0 Opens: 799 Flush tables: 1 Open tables: 117 Queries per second avg: 18.650
这是崩溃前不久的日志: PASTEBIN
我知道我有很多疑问(我相信)只有~22小时,但这只是内部使用,所以没有其他负载。 我运行的是256MB,是不是太低了?
我读了一些关于"慢/迷你"设置MySQL,有用吗?
编辑:
运行mysqltuner,它给了我: 最大内存使用量:352.4M(已安装RAM的161%)
我该如何减少?
答案 0 :(得分:0)
确保关闭performance_schema;它在5.6中扼杀了记忆。 (5.7更好。)
调谐器是悲观的,因此161%不一定是灾难。但是,它只计算MySQL所需的数据,而不是OS,MySQL代码或任何应用程序的空间。
所以,是的,减少各种可调参数。通常innodb_buffer_pool_size
是最大的,可以减少到30M。其他可能性:max_connections = 10
,table_open_cache = 100
,threads_cached = 3
。任何这些变化都可能(或可能不会)导致性能受损。但崩溃更糟糕。
你应该考虑获得更多内存。和/或从服务器上移出非mysql应用程序。
崩溃时是否有错误消息?查看mysqld.err
。该错误可能表明它遇到问题的可调参数。