2014-09-23 43 views
0

我从来没有真正玩过mysql设置,但在我们新的linux云服务器上,似乎mysql正在吃掉所有内存直到它崩溃,然后它不能重新启动,因为没有更多内存重新启动服务,我必须重新启动云服务器。MySQL在my.cnf中缺少key_buffer_size

所以我在看我如何能够驯服内存使用情况,并在阅读了关于key_buffer_size(和另一个设置我不记得我的头)之后,我看看my.cnf文件,并没有什么这个设置就可以了。我my.cnf如下...

[client] 
port       = 3306 
socket       = /var/run/mysqld/mysqld.sock 

[mysqld_safe] 
socket       = /var/run/mysqld/mysqld.sock 

[mysqld] 
user       = mysql 
pid-file      = /var/run/mysqld/mysql.pid 
socket       = /var/run/mysqld/mysqld.sock 
port       = 3306 
datadir      = /var/lib/mysql 

[mysql] 
!includedir /etc/mysql/conf.d 

没有key_buffer_size设置...它会继续吃掉内存,直到它耗尽?不应该设置这个设置吗?

干杯

+0

重新读你写的东西。 “它不能重新启动,因为没有更多的内存来重新启动服务。”但是请等待:如果服务崩溃了,现在所有的内存都被释放了,所以分析不应该是正确的。这个问题不太可能是MySQL。它是另一个内存猪的受害者:http://dba.stackexchange.com/questions/25077/mysql-innodb-crash-post-mortem/25083#25083 – 2014-09-24 01:42:16

回答

0

为key_buffer_size的默认值是每http://dev.mysql.com/doc/refman/5.0/en/server-parameters.html

8M不过,我想请您设置这些第一(和重启MySQL),看看问题是否仍然存在。

key_buffer    = 16M 
max_allowed_packet  = 16M 
thread_stack   = 192K 
thread_cache_size  = 8 
query_cache_limit  = 1M 
query_cache_size  = 16M 

如果在使用这些设置后,问题仍然存在,那么这可能不是配置问题,而是更深层次的问题。

此外,看到这些:

https://dba.stackexchange.com/questions/31182/mysql-slowly-uses-memory-until-it-starts-to-use-swap

https://dba.stackexchange.com/questions/7400/why-does-mysql-use-all-of-memory-and-goes-into-swap-when-doing-lots-of-delayed-i

+0

谢谢... cnf中哪些部分应该这样去? – 2014-09-23 22:26:55

+1

他们进入'[mysqld]'部分。 – 2014-09-24 01:38:03

0

感谢种的意见!

原来是innodb_buffer_pool_size。它被设置为我的机器高。我调整了它,并优化了Apache使用的内存量。一切似乎都运行得更好,并且存在一定的内存空间。希望修复它。