I just installed 32 bit version of xampp 1.8.2 that included php 5.4, mysql 5.0.1 and apache 2.4.9. All three packed inside bitnami webdevelopment package, so the installation is simple and nice.
 
But when i started mysql, it failed to start. I just wondering what was happened, because I did nothing after the installation. So i thought of examining mysql logs to find out more about this issue. The log contained following information:
 
140615 18:58:34 InnoDB: The InnoDB memory heap is disabled
140615 18:58:34 InnoDB: Mutexes and rw_locks use Windows interlocked functions
140615 18:58:34 InnoDB: Compressed tables use zlib 1.2.3
140615 18:58:34 InnoDB: Initializing buffer pool, size = 16.0M
140615 18:58:34 InnoDB: Completed initialization of buffer pool
InnoDB: Error: space header page consists of zero bytes in data file C:\Program Files\xampp\mysql\data\ibdata1
140615 18:58:34 InnoDB: Could not open or create data files.
140615 18:58:34 InnoDB: If you tried to add new data files, and it failed here,
140615 18:58:34 InnoDB: you should now edit innodb_data_file_path in my.cnf back
140615 18:58:34 InnoDB: to what it was, and remove the new ibdata files InnoDB created
140615 18:58:34 InnoDB: in this failed attempt. InnoDB only wrote those files full of
140615 18:58:34 InnoDB: zeros, but did not yet use them in any way. But be careful: do not
140615 18:58:34 InnoDB: remove old data files which contain your precious data!
140615 18:58:34 [ERROR] Plugin 'InnoDB' init function returned error.
140615 18:58:34 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140615 18:58:34 [ERROR] Unknown/unsupported storage engine: InnoDB
140615 18:58:34 [ERROR] Aborting
 
140615 18:58:34 [Note] c:\program files\xampp\mysql\bin\mysqld.exe: Shutdown complete

This may occur in following scenarios:
  • hard disk storage capacity > 2TB
  • write permission issues
  • window / third party security functions

 

Solution:

This issue can be fixed by following any one of the methods

I. Adding setting innodb_flush_method=normal to my.ini

   Open \xampp\mysql\bin\my.ini
   Find this line  [mysqld]  

   At the end of the innodb_parameters add the following:
  

innodb_flush_method=normal

II. Remove innodb data files

   Goto \xampp\mysql\data
   Rename ib_logfile0, ib_logfile1, ibdata to another name, let mysql create new
   one.

III. Change default storage engine to MyIsam by disabling InnoDb

   Open \xampp\mysql\bin\my.ini
   Find this line  [mysqld] 
   After that line add the following:
  

   default-storage-engine=MyISAM
  

 Search this line:
 

  #skip-innodb
 

 Modify that line like this:
 

  skip-innodb
 

  Save this file and restart mysql.

 


Comments (7)
  1. Image
    Someone - Reply

    September 16, 2020

    Thank you for the very excellent post.

  2. Image
    Bligh ferrara - Reply

    February 06, 2017

    I added the line default-storage-engine=MyISAM and it suddenly started working!

  3. Image
    Akila - Reply

    May 30, 2015

    Worked for me... thankxx

  4. Image
    Kaz Vorpal - Reply

    April 08, 2015

    I was setting up Uniform Server, and ran into this problem. Solution 2 on your list worked for me. I had already tried 1 before I found your post, and it'd failed.

  5. Image
    David - Reply

    October 24, 2014

    Doesn´t Work, still the same problem....

Leave a Comment

loader Posting your comment...