我们在 Almalinux 8 服务器上运行 MariaDB 10.6.13。在 /etc/my.cnf 中,我们指定了 table_open_cache = 1024。但是,当我们运行它时,show variables like 'table_open%';
它显示 table_open_cache 为 200 而不是 1024。有趣的是,如果我们在 my.cnf 中将它设置为小于 200 的任何值,它需要该值,但超过 200 且上限为 200。
我们可以使用动态将其设置为更高的值set global table_open_cache = 1024;
,这反映在变量中,但我们似乎无法从 my.cnf 设置更高的值。(是的,我们在进行更改后重新启动 mariadb。同样,设置为低于 200 的值有效。)
ulimit -n
返回 1024。open_files_limit 是 40000。我们还检查了 mariadb 除了 /etc/my.cnf 和 ~/.my.cnf 之外没有加载任何其他 cnf 文件,后者不包含任何会覆盖该值的内容. 还检查了错误日志,但没有看到任何启动错误。
还有什么可能导致 table_open_cache 上限为 200?