-
RSS Links
Categories
- /bike
- /blog
- /categoryless
- /coffee
- /dev/random
- /food
- /freenetworks
- /friends
- /funny
- /geek
- /GirTheCadillac
- /Lebowski
- /Life
- /LifeWithDog
- /me
- /metrix
- /music
- /National Wireless Summit 2006
- /phonecamera
- /photo
- /potpourri
- /seadrunks
- /seattle
- /seattlewireless
- /shmoocon
- /softball
- /StupidShellTricks
- /sysadmin
- /travel
- /unix
- /work
- cons
- monitoring
- pyramid
- ruby
Archives
- January 2011
- December 2010
- September 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- December 2008
- December 2007
- August 2007
- July 2007
- May 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- June 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005
- March 2005
- February 2005
- January 2005
- December 2004
- November 2004
- October 2004
- September 2004
- August 2004
- July 2004
- June 2004
- February 2004
- January 2004
- December 2003
- November 2003
- August 2003
MySQL: ERROR 1286 (42000): Unknown table engine ‘InnoDB’
I was asked to review a application recently that had some performance issues. The db engine was MySQL and the database was getting hammered. Changing the behavior of the queries the app used was not a short term option so I started looking tuning at the MySQL configuration.
The box in question was a “large” EC2 instance (two cores, 8 GB RAM). With the MySQL data dir mounted on an EBS volume. One of parameters I tweaked was the “innodb_buffer_pool_size”. Out of the box it was set to 8MB which is fairly tiny. After reading some docs and blog posts on the subject, I decided to go with the suggested 50-80 percent. After setting the value to 4GB, I restarted and things were humming along.
I came back a while later and noticed this error in the app logs: Unknown table engine ‘InnoDB’ .
I logged into the mysql console and got the same error trying to run some simple SELECTs on data that I knew should be there. As it turns out MySQL will go ahead and shutdown the InnoDB engine if it has trouble allocating memory for the innodb buffer pool. I suspect the pool started off small and progressively grew and failed to find needed RAM. At which point it turned off InnoDB. Nice! Of course restarting MySQL would “fix” this issue for a while till it happened again, so I ended up turning it down a bit to reduce the chance of this happening again.
A couple of related posts I found useful:
InnoDB engine disabled when specifying a buffer pool size too high
Choosing innodb_buffer_pool_size