Bug #68315 table_cache renamed table_open_cache
Submitted: 8 Feb 2013 13:47 Modified: 12 Feb 2013 10:02
Reporter: Steven Hartland Email Updates:
Status: Not a Bug Impact on me:
Category:MySQL Server: Options Severity:S3 (Non-critical)
Version:5.6 OS:Any
Assigned to: CPU Architecture:Any
Tags: table_cache, table_open_cache

[8 Feb 2013 13:47] Steven Hartland
Seem like in 5.5 the system variable table_cache was renamed table_open_cache but wasn't mentioned in the release notes. I suspect this option was silently ignored which is obviously bad as the DBA wouldn't know the option wasn't being applied which could cause problems.

In 5.6 mysqld fails if it finds an unknown variable this means that upgrades from versions earlier than 5.5 can have problems if table_cache is specified in my.cnf.

In addition several areas of the code report the value of table_cache which is tied to the value of table_cache_size, which further leads to confusion e.g.
[Warning] Changed limits: max_open_files: 11095  max_connections: 1000  table_cache: 5042

This should be:-
[Warning] Changed limits: max_open_files: 11095  max_connections: 1000  table_open_cache: 5042

In addition it looks like max_open_files should actually say open_files_limit.

How to repeat:
Add table_cache to [mysqld] section of my.cnf on 5.6 and start the DB, this will fail.
[12 Feb 2013 10:02] MySQL Verification Team
Hello Steven,

Thank you for the report.

This change was documneted in 5.1.3 change log - http://dev.mysql.com/doc/relnotes/mysql/5.1/en/news-5-1-3.html
and http://dev.mysql.com/doc/refman/5.1/en/upgrading-from-previous-series.html

See, Incompatible Change: Renamed the table_cache system variable to table_open_cache. Any scripts that refer to table_cache should be updated to use the new name. 

Also, table_cache is the old name of table_open_cache before MySQL 5.1.3. From 5.1.3 on, use table_open_cache instead. 

[18 Dec 2013 9:02] Muhammad Irfan
From 5.1.3 table_cache is depreciated as per change log. table_open_cache is replaced with table_cache.

In MySQL 5.5, we can still use table_cache while in MySQL 5.6 mysqld fails to start when table_cache is used instead of table_open_cache and this is not documented. I thought there should be warning need to print out in error log if table_cache is used after MySQL 5.1.3 version.