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 calculates
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