0

Since yesterday, my InnoDB tables in my Mysql installation on Ubuntu don't work anymore, I tried to open them using Navicat, but I get the "Unknown Table engine 'InnoDB'" error.

When I try listing all Engines using Show Engines; it returns;

+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                        | Transactions | XA   | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance         | NO           | NO   | NO         | 
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                          | 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 temporary tables      | NO           | NO   | NO         | 
| FEDERATED  | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       | 
| ARCHIVE    | YES     | Archive storage engine                                         | NO           | NO   | NO         | 
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
7 rows in set (0.00 sec)

As you can see InnoDB is not listed, any suggestions on how to fix this? Or even change the engine for a table, without requiring the old engine?

After checking the log, I found this;

/usr/sbin/mysqld: Can't create/write to file '/tmp/ibnGBtbE' (Errcode: 13)
101129 21:03:17  InnoDB: Error: unable to create temporary file; errno: 13
101129 21:03:17 [ERROR] Plugin 'InnoDB' init function returned error.
101129 21:03:17 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

Any idea how to solve this?

Thizzer
  • 105
  • 5

2 Answers2

3

Then sounds like permissions on /tmp are messed up..

chmod 1777 /tmp

Then try to restart mysql

Mike
  • 22,310
  • 7
  • 56
  • 79
  • just as likely /tmp is full or out of inodes – Joris Nov 29 '10 at 21:12
  • 1
    nope.. error 13 is permission denied.. if he was full or out of inodes it would be a different error – Mike Nov 29 '10 at 21:19
  • I had this exact same problem today installing MySQL 5.5.9 but with a different folder. The folder was /var/tmpfs. The folder did not exist. So, I created the folder, did chmod 777 /var/tmpfs and restarted mysql. JACKPOT !!! – RolandoMySQLDBA Feb 24 '11 at 03:52
1

Check your mysql error log.. You might have made changes to your my.cnf file and innodb is failing to init due to incorrect ibdata file sizes.

Mike
  • 22,310
  • 7
  • 56
  • 79