MySQL variables open_files_limit,
table_open_cache and max_connections are
inter-related, and this is for obvious reasons: all deal with file descriptors
one way or another.
If one of the value is provided but others are left out, mysqld
others using a formula and in some cases, emits a warning if not possible.
The whole calculation behind obtaining the final file descriptor
limit is a bit
byzantine and is as follows (for Linux):
EDIT: This applies to MySQL 5.5, in 5.6, as
Daniël in comments pointed out,
few things have changed, check comment for details. I will probably make a
followup post on the differences.
- First it tries to calculate a minimum requirement based on