Description:
The manual contradicts, and says this value should be dynamic. It is not.
How to repeat:
mysql> show global variables like 'table%';
+-------------------------+--------+
| Variable_name | Value |
+-------------------------+--------+
| table_definition_cache | 256 |
| table_lock_wait_timeout | 50 |
| table_open_cache | 64 |
| table_type | MyISAM |
+-------------------------+--------+
4 rows in set (0.00 sec)
mysql> SET GLOBAL table_open_cache=128;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like 'table%';
+-------------------------+--------+
| Variable_name | Value |
+-------------------------+--------+
| table_definition_cache | 256 |
| table_lock_wait_timeout | 50 |
| table_open_cache | 128 |
| table_type | MyISAM |
+-------------------------+--------+
4 rows in set (0.01 sec)
mysql> SET GLOBAL table_definition_cache=128;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show warnings;
+---------+------+---------------------------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------------------------+
| Warning | 1292 | Truncated incorrect table_definition_cache value: '128' |
+---------+------+---------------------------------------------------------+
1 row in set (0.00 sec)
Suggested fix:
Make it dynamic - no reason not?