Bug #43551 inventory table is created as InnoDB with default-storage-engine = InnoDB
Submitted: 11 Mar 2009 1:08 Modified: 22 May 2009 8:31
Reporter: Meiji KIMURA Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Enterprise Monitor: Agent Severity:S3 (Non-critical)
Version:2.0.4.7141 OS:Any
Assigned to: Jan Kneschke CPU Architecture:Any
Tags: mem_20_maint

[11 Mar 2009 1:08] Meiji KIMURA
Description:
mysql.inventory table is created by an agent when its first activation.
Normally it is created as MyISAM type table. But default-storage-engine=InnoDB is specified in my.cnf, it is created as InnoDB engine like this,

mysql> show create table inventory\G
*************************** 1. row ***************************
       Table: inventory
Create Table: CREATE TABLE `inventory` (
  `name` varchar(64) NOT NULL,
  `value` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

I don't think it hurts agent activities, but it's inconsistent with all the other tables in the mysql database. (Normally all tables in mysql database are MyISAM type)

How to repeat:
(1) Specify default-storage-engine=InnoDB in my.ini
(2) Install an agent for it, and activate.
(3) Check a table type of mysql.inventory.

Suggested fix:
[Workaround]

I don't think it hurts. But I can change table type 

mysql> ALTER TABLE inventory ENGINE = MyISAM;

[Suggested Fix]

An agent should specify ENGINE = MyISAM explicit when creating mysql.inventory table.
[30 Mar 2009 11:46] Jan Kneschke
pushed into trunk/

revno: 1229
committer: jan@mysql.com
branch nick: trunk
timestamp: Mon 2009-03-30 12:06:02 +0200
message:
  set MyISAM as ENGINE and utf8 as charset (fixes #43551)

revno: 1247
committer: jan@mysql.com
branch nick: rel-2.0
timestamp: Mon 2009-03-30 13:45:26 +0200
message:
  set MyISAM as ENGINE and utf8 as charset (fixes #43551)
[31 Mar 2009 21:12] Keith Russell
Patch installed in versions => 2.1.0.1022.
[4 Apr 2009 2:20] Roel Van de Paar
If the default storage engine is set as MEMORY, mysql.inventory will be created as a MEMORY table. The result is that each restart of the agent, a new uuid will be created (and a new server will show up in dashboard).
[15 Apr 2009 21:07] Bill Weber
verified fixed in builds 2.0.6.7158 and 2.1.0.1022
[22 May 2009 8:31] Tony Bedford
An entry was added to both the 2.0.6 and 2.1.0 changelogs:

The agent created the mysql.inventory table with an engine type of InnoDB, instead of MyISAM, when InnoDB was specified as the default engine type in my.cnf. This happened because the agent did not explicitly specify the table engine type to be of MyISAM.