MySQL table_cache拒绝改变值

时间:2013-10-31 11:50:20

标签: mysql percona

出于一些非常奇怪的原因,table_cache文件中的query_cache_limitmy.cnf值都拒绝更改值,即使我已修改它们。

例如在mysqltuner中显示以下建议:

query_cache_limit (> 1M, or use smaller result sets)
table_cache (> 400)

但是在my.cnf文件中我有:

query-cache-limit              = 8G
table-open-cache               = 2048

我已经重新启动了mysql,apache和服务器,但是这些值拒绝更新。我正在使用mysql服务器中的Percona 5.5 drop。

非常欢迎任何提示或建议。

由于

2 个答案:

答案 0 :(得分:0)

因为可能正在更改全局配置文件,所以您设置的值很可能被更具体的配置文件覆盖,如stated in the docs

  

请记住,即使MySQL确实在/etc/my.cnf中找到了my.cnf文件(全局到该机器上的所有MySQL服务器),它仍将继续搜索特定于服务器的文件,然后是用户特定的文件。您可以将最终配置设置视为/etc/my.cnf,mysql-data-dir / my.cnf和〜/ .my.cnf文件的结果

您可以删除更具体文件中设置的任何值,也可以在mysql用户的特定配置文件中设置该值。

答案 1 :(得分:0)

我有同样的问题。 有解决方案吗?

正如@NDM在他的回答中提到的,我试图搜索另一个cnf文件

find / -type f -name *.cnf*
/etc/mysql/debian.cnf
/etc/mysql/conf.d/mysqld_safe_syslog.cnf
/etc/mysql/conf.d/my5.6.cnf
/etc/mysql/my.cnf
/etc/texmf/fmt.d/50cyrtexinfo.cnf
/etc/ssl/openssl.cnf
/usr/share/doc/mysql-server-5.6/examples/my-default.cnf
/root/.my.cnf
/var/lib/mysql/auto.cnf

在任何这些文件中,没有mysql设置重载。所以我很困惑。 另外我更改了innod_db_buffer_pool_size并在mysql重启后更改了!但是table_open_cache没有!

半小时后更新

我找到了解决方案! 这都是因为debian系统打开文件限制设置。 您可以按照此处的说明进行更改 https://wied.it/blog/increase-max-open-files-in-debian-squeeze-too-many-open-files-ulimit-n-limits-conf.html

或者在这里 https://rtcamp.com/tutorials/linux/increase-open-files-limit/

# ulimit -n 4096
Relogin and verify:

# ulimit -Sn # soft limit
# ulimit -Hn # hard limit

之后重启mysql。