Bug #71977 Manual does not explain possible values for default_storage_engine
Submitted: 8 Mar 2014 16:51 Modified: 10 Mar 2014 15:53
Reporter: Valeriy Kravchuk Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:5.5, 5.6 OS:Any
Assigned to: Paul DuBois CPU Architecture:Any
Tags: default_storage_engine, default_tmp_storage_engine, missing manual

[8 Mar 2014 16:51] Valeriy Kravchuk
Description:
Manual (http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_default_storage...) does not explicitly list possible values for the default_storage_engine (even though it's type is listed as "enumeration") and does not explain what storage engine may be set as default. 

It seems you can use engine that is available and enabled according to SHOW ENGINES output (all BUT PERFORMANCE_SCHEMA).

How to repeat:
mysql> set global default_storage_engine=something;
ERROR 1286 (42000): Unknown storage engine 'something'
mysql> show engines;
+--------------------+---------+------------------------------------------------
----------------+--------------+------+------------+
| Engine             | Support | Comment
                | Transactions | XA   | Savepoints |
+--------------------+---------+------------------------------------------------
----------------+--------------+------+------------+
| FEDERATED          | NO      | Federated MySQL storage engine
                | NULL         | NULL | NULL       |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables
                | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine
                | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to
 it disappears) | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine
                | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for tempor
ary tables      | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine
                | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and f
oreign keys     | YES          | YES  | YES        |
| PERFORMANCE_SCHEMA | YES     | Performance Schema
                | NO           | NO   | NO         |
+--------------------+---------+------------------------------------------------
----------------+--------------+------+------------+
9 rows in set (0.32 sec)

mysql> set global default_storage_engine=federated;
ERROR 1286 (42000): Unknown storage engine 'federated'
mysql> set global default_storage_engine=MRG_MYISAM;
Query OK, 0 rows affected (0.00 sec)

mysql> show engines;
+--------------------+---------+------------------------------------------------
----------------+--------------+------+------------+
| Engine             | Support | Comment
                | Transactions | XA   | Savepoints |
+--------------------+---------+------------------------------------------------
----------------+--------------+------+------------+
| FEDERATED          | NO      | Federated MySQL storage engine
                | NULL         | NULL | NULL       |
| MRG_MYISAM         | DEFAULT | Collection of identical MyISAM tables
                | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine
                | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to
 it disappears) | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine
                | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for tempor
ary tables      | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine
                | NO           | NO   | NO         |
| InnoDB             | YES     | Supports transactions, row-level locking, and f
oreign keys     | YES          | YES  | YES        |
| PERFORMANCE_SCHEMA | YES     | Performance Schema
                | NO           | NO   | NO         |
+--------------------+---------+------------------------------------------------
----------------+--------------+------+------------+
9 rows in set (0.03 sec)

Suggested fix:
Explain what values are valid and recommended for this variables. In case of 5.6 we have the same problem for default_tmp_storage_engine also.
[9 Mar 2014 23:16] MySQL Verification Team
Thank you for the bug report.
[10 Mar 2014 15:53] Paul DuBois
Thank you for your bug report. This issue has been addressed in the documentation. The updated documentation will appear on our website shortly, and will be included in the next release of the relevant products.

Enumerating the permitted values is complicated by the fact that engines can be enabled or disabled at startup, and third-party engines might be installed. Will add this note:

To see which storage engines are available and enabled, use the SHOW
ENGINES statement or query the INFORMATION_SCHEMA ENGINES table.