There is a reason why INNODB engine is absent from MySQL. If your innodb_buffer_pool_size variable is too high and MySQL can't allocate the buffer it will disable the INNODB engine.
You should see something like this in the error log :
140204 13:12:26 InnoDB: Initializing buffer pool, size = 4.9G
140204 13:12:26 InnoDB: Error: cannot allocate 5242896384 bytes of
InnoDB: memory with malloc! Total allocated memory
InnoDB: by InnoDB 36878736 bytes. Operating system errno: 12
InnoDB: Check if you should increase the swap file or
InnoDB: ulimits of your operating system.
InnoDB: On FreeBSD check you have compiled the OS with
InnoDB: a big enough maximum process size.
InnoDB: Note that in most 32-bit computers the process
InnoDB: memory space is limited to 2 GB or 4 GB.
InnoDB: We keep retrying the allocation for 60 seconds...
140204 13:13:26InnoDB: Fatal error: cannot allocate the memory for the buffer pool
140204 13:13:26 [ERROR] Plugin 'InnoDB' init function returned error.
140204 13:13:26 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
This error was logged on a server with 1GB of RAM while the buffer pool request 4.9G
Also, Make sure the mysql user can write to /tmp. I got 'Unknown table engine InnoDB' after restore where /tmp was not writable for that user.
There might be no engine 'InnoDBopt'
Try show engines;
If mysql return something like
+------------+----------+----
| Engine | Support | ...
+------------+----------+----
| InnoDB | DISABLED | ...
Most likely engine innodb has been disabled.
Look for option skip-innodb in your mysql configuration (such as my.cnf),
comment out this option,
restart mysql daemon, it should fix