6

I am trying to use roundcube and it recently just broke. I don't know if this is due to a MySQL update that happened recently or not but in phpMyAdmin I get the following error if I try and view a table:

1286 - Unknown storage engine 'InnoDB'

and

mysql> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MyISAM             | DEFAULT | MyISAM storage engine                                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.00 sec)

and

[mysqld]
default-storage-engine=MyISAM
local-infile=0
symbolic-links=0
skip-networking
max_connections = 500
max_user_connections = 20
key_buffer = 512M
myisam_sort_buffer_size = 64M
join_buffer_size = 64M
read_buffer_size = 12M
sort_buffer_size = 12M
read_rnd_buffer_size = 12M
table_cache = 2048
thread_cache_size = 16K
wait_timeout = 30
connect_timeout = 15
tmp_table_size = 64M
max_heap_table_size = 64M
max_allowed_packet = 64M
max_connect_errors = 10
query_cache_limit = 1M
query_cache_size = 64M
query_cache_type = 1
low_priority_updates=1
concurrent_insert=ALWAYS
log-error=/var/log/mysql/error.log
tmpdir=/home/mysqltmp
myisam_repair_threads=4
[mysqld_safe]
open_files_limit = 8192
log-error=/var/log/mysql/error.log

[mysqldump]
quick
max_allowed_packet = 512M

[myisamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M

Ideas as to how to fix? It used to work just fine.

1
  • 1
    Check what mysql error log (/var/log/mysql/error.log) says on startup. Commented Jun 5, 2013 at 13:12

6 Answers 6

6

OBSERVATIONS

  • I see there is nothing Innodb-related in the my.cnf.
  • Look for Innodb-related error messages expressing why mysqld failed to start in the error log.

My first guess would be look at the ib_logfile0 and ib_logfile1 in /var/lib/mysql.

If they have been set to size different from the default, that probably will prevent mysqld's startup. The default for innodb_log_file_size is 5M.

SUGGESTION #1

If RoundCube's installation overwrote the my.cnf, see if you have a physical backup of the previous my.cnf. Put that back in place and run

service mysql start

SUGGESTION #2

Take the filesize of ib_logfile0 and divide by 1048576. Let's say it is 12M.

Put that in my.cnf

[mysqld]
innodb_log_file_size = 12M

then run

service mysql start

Give it a Try !!!

2

Just delete ib_logfileX files and restart mysql service.

You changed the innodb-log-file-size var to size more bigger than already set it in your mysql daemon.

1
  • 1
    I've edited your post. Please use punctuation and full words next time. "u" is not a word ;) Commented Aug 2, 2015 at 23:41
1

Petre already wrote it, but perhaps to clarify:

It seems that the InnoDB Engine is not loaded when MySQL cannot write to the temp directory (usually /tmp). This might be caused by either a full temp partition, or incorrect permissions on the temp directory.

As Petre has mentioned chmod 1777 /tmp should resolve this issue. Don't forget to restart MySQL afterwards.

0

You may want to check this link: https://stackoverflow.com/questions/7303133/unknown-table-engine-innodb

Some of the things that are mentioned in the article: 1. Deleting innodb log files. 2. Changing innodb_buffer_pool_size to lower then 2G

0

When you have disable innodb, dont' forget to remove all innodb-related tables from Dbs. For example "mysql" database has 5 of them:

[email protected]$ mysql mysql -e 'show table status' | grep Unknown | awk '{print $1}'
innodb_index_stats
innodb_table_stats
slave_master_info
slave_relay_log_info
slave_worker_info
0

I use roundcube, apache2, mysql, dovecot, postfix.

After a harddisk crash and reinstall of the same system on a new HDD I cannot connect to the mail server by web application (roundcube). The message was "Unknown storage engine 'InnoDB'".

After about 2 weeks of searching the configuration fault without results and by a miracle, today, I saw that some of the linux components cannot write in /tmp.

That's all that I did ... put chmod 1777 /tmp ...
Now it's running ok!

Good luck!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.