Bug #48453 mysql_upgrade should convert relevant internal tables to myisam
Submitted: 31 Oct 2009 14:19 Modified: 31 Oct 2009 15:09
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: General Severity:S4 (Feature request)
Version:5.1.40 OS:Any
Assigned to: CPU Architecture:Any

[31 Oct 2009 14:19] Shane Bester
Description:
It is widely known that mysql system/grant tables should be myisam. (excluding the logtables). This is a feature request to make mysql_upgrade ensure that when calling mysql_system_tables_fix.sql the tables that should be myisam are indeed myisam.

How to repeat:
preferably not

Suggested fix:
Add the following into mysql_system_tables_fix.sql:

 alter table `mysql`.`columns_priv` engine=myisam;
 alter table `mysql`.`db` engine=myisam;
 alter table `mysql`.`event` engine=myisam;
 alter table `mysql`.`func` engine=myisam;
 alter table `mysql`.`help_category` engine=myisam;
 alter table `mysql`.`help_keyword` engine=myisam;
 alter table `mysql`.`help_relation` engine=myisam;
 alter table `mysql`.`help_topic` engine=myisam;
 alter table `mysql`.`host` engine=myisam;
 alter table `mysql`.`ndb_binlog_index` engine=myisam;
 alter table `mysql`.`plugin` engine=myisam;
 alter table `mysql`.`proc` engine=myisam;
 alter table `mysql`.`procs_priv` engine=myisam;
 alter table `mysql`.`servers` engine=myisam;
 alter table `mysql`.`tables_priv` engine=myisam;
 alter table `mysql`.`time_zone` engine=myisam;
 alter table `mysql`.`time_zone_leap_second` engine=myisam;
 alter table `mysql`.`time_zone_name` engine=myisam;
 alter table `mysql`.`time_zone_transition` engine=myisam;
 alter table `mysql`.`time_zone_transition_type` engine=myisam;
 alter table `mysql`.`user` engine=myisam;
[4 Nov 2009 12:34] MySQL Verification Team
I guess this feature request requires the server to run in bootstrap or skip-grant-tables mode to actually work.