I’m spending a lot of time on the Facebook group of openSUSE these days. Problems & issues that people post there actually keep me investigating; something I’ve been missing for some time.
Today Artemio Stenio posted a MySQL issue he encountered. The screenshot he shared could not provide much information, so I asked him to send the mysqld-upgrade-run.log instead. See an extract of the log:
130518 15:24:57 mysqld_safe mysqld from pid file /var/tmp/mysql-protected.lsPXtR/mysqld.pid ended 130518 15:29:39 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 130518 15:29:39 InnoDB: The InnoDB memory heap is disabled 130518 15:29:39 InnoDB: Mutexes and rw_locks use GCC atomic builtins 130518 15:29:39 InnoDB: Compressed tables use zlib 1.2.7 130518 15:29:39 InnoDB: Initializing buffer pool, size = 128.0M 130518 15:29:39 InnoDB: Completed initialization of buffer pool InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes InnoDB: than specified in the .cnf file 0 5242880 bytes! 130518 15:29:39 [ERROR] Plugin ‘InnoDB’ init function returned error. 130518 15:29:39 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed. 130518 15:29:39 [ERROR] Unknown/unsupported storage engine: InnoDB 130518 15:29:39 [ERROR] Aborting130518 15:29:40 [Note] /usr/sbin/mysqld: Shutdown complete 130518 15:29:40 mysqld_safe mysqld from pid file /var/tmp/mysql-protected.wFdcx4/mysqld.pid ended
Now, from the above errors we can see MySQL isn’t starting because of conflicting “innodb_log_file_size”.
To fix the same we can either:
- edit the value in my.cnf and match it with the size obtained in the log.
- we can delete the ib_logfiles from the “datadir” and start MySQL. When the latter starts it re-creates the ib_logfile with the correct size if it is not present.