Enable MySQL InnoDB Storage Engine Support in XAMPP Installation

XAMPP from Apache Friends is a collection of free open source apps that make it easy to install Apache distribution containing MySQL, PHP and Perl. There are four XAMPP distributions for Windows, Linux, Mac OS X and Solaris. To set up an Apache web server with XAMPP, simply download and extract XAMPP, and the Apache HTTPD web server is ready after one or two more auto-execute scripts. There are no changes to the Windows registry (unless you’re using Widows installer version of XAMPP) and it’s not necessary to edit any configuration files.

However, by default, InnoDB MySQL database storage engine is not enabled in the my.cnf configuration file. If a webmaster plans to use InnoDB features, such as one to many or many to many table relationships on foreign key constraints, or transaction-safe commands such as commit, rollback and crash recovery capabilities.

To enable the support of MySQL server on InnoDB storage engine, locate the “my.cnf” config file (normally in /installation_path/xampp/mysql/bin/ directory), and edit the my.cnf with any text editor such as vi.

Search and locate each of the following lines (except the lines in italic where they’re comments):

- Comment the following line to unskip and use InnoDB
skip-innodb

- Uncomment the following options for InnoDB database if you are using InnoDB tables.
#innodb_data_home_dir = C:/xampp/xampp/mysql/data/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:/xampp/xampp/mysql/data/
#innodb_log_arch_dir = C:/xampp/xampp/mysql/data/

- Uncomment the lines and set innodb_buffer_pool_size up to 50% - 80% of RAM for optimization of InnoDB databases, try not to memory usage too high.
#set-variable = innodb_buffer_pool_size=16M
#set-variable = innodb_additional_mem_pool_size=2M

- Uncomment the lines and set innodb_log_file_size to 25% of InnoDB buffer pool size for optimisation.
#set-variable = innodb_log_file_size=5M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#set-variable = innodb_lock_wait_timeout=50

After modification, the code for each lines should look like this:

# skip-innodb

innodb_data_home_dir = C:/xampp/xampp/mysql/data/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = C:/xampp/xampp/mysql/data/
innodb_log_arch_dir = C:/xampp/xampp/mysql/data/

set-variable = innodb_buffer_pool_size=16M
set-variable = innodb_additional_mem_pool_size=2M

set-variable = innodb_log_file_size=5M
set-variable = innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
set-variable = innodb_lock_wait_timeout=50

When InnoDB is not enable and MySQL uses MyISAM database storage engine instead, some errors that may be returned include:

Undefined GET property or variable in ‘A_Class’ class: A_Class_Object

Fatal error: Call to undefined method Object::Function() in /xampp/htdocs/wwwroot/a_page.php on line 87

Share and contribute or get technical support and help at My Digital Life Forums.



14 Responses to “Enable MySQL InnoDB Storage Engine Support in XAMPP Installation”

  1. Iftekher Chowdhury
    March 1st, 2008 03:08
    1

    I needed to activate innoDB for using activeCollab. Your article helped me a lot. It was very well written.Thanx.

  2. sabine
    April 12th, 2008 21:54
    2

    This helps me a lot. Thank you!

  3. christian
    April 24th, 2008 23:47
    3

    Very helpful, thank you!

  4. rushid
    May 4th, 2008 23:08
    4

    Thanks, you saved me a lots of searching

  5. Dele Agagu
    May 15th, 2008 03:16
    5

    I tried the above but whatever changes i made to my.cnf file in apachefriends folder, nothing was working. The following worked for me:

    1. If you have MYSQL SYSTEM TRAY MONITOR installed on your machine (it is bundled with MYSQL QUERY BROWSER), launch it - you will see a little icon on the notification task bar on your windows machine.

    2. Right click it and choose “Configure instance”.

    3. Select “Startup Variables” on the left item listings.

    4. Toggle to “InnoDB Parameters” tab. Select “Activate InnoDB”. You will notice all your settings are disabled.( to change your settings/uncomment as mentioned above, follow the next steps)

    5. At the footer of the InnoDB tab window you will see a label:
    Options file: C:\WINDOWS\my.ini
    Section: mysqld

    So this is where my configuration file was located. This ini file took precedent over the apachefriends folder > my.cnf. Locate this file and simply follow the uncommenting procedure of this post and save.

    6. Stop the mysql service by right clicking on the Monitor tray again. Select “Shutdown Instance”.

    7. Right click again and Select “Start Instance”.

    8. Now you will see all your InnoDB variables settings. :)

  6. Shift Instinct » Blog Archive » How to enable InnoDB Storage Engine Support in XAMPP Installation
    May 15th, 2008 03:25
    6

    [...] http://www.mydigitallife.info [...]

  7. Karim
    May 22nd, 2008 22:01
    7

    Thank you, your article was very comperhensive.
    It helped me alot.

  8. Jimis
    May 25th, 2008 15:02
    8

    For those who had my problem. If you couldnt find a my.cnf file, instead you find a shortcut looking icon named ‘my’.

    This is the my.cnf file!!

    I couldnt right click ‘open with’, instead I opened it by opening a ext editor and file->open->my.

    Then follow above. :)

  9. Jimis
    May 25th, 2008 15:12
    9

    Except my my.cnf was this: (it worked all the same)

    #skip-innodb
    innodb_data_home_dir = “C:/xampp/mysql/”
    innodb_data_file_path = ibdata1:10M:autoextend
    innodb_log_group_home_dir = “C:/xampp/mysql/”
    innodb_log_arch_dir = “C:/xampp/mysql/”

    innodb_buffer_pool_size = 16M
    innodb_additional_mem_pool_size = 2M

    innodb_log_file_size = 5M
    innodb_log_buffer_size = 8M
    innodb_flush_log_at_trx_commit = 1
    innodb_lock_wait_timeout = 50

  10. Rana
    June 29th, 2008 16:55
    10

    I have configured your instruction. But, until my InnoDB database storage engine doesn’t working. Also i restarted my mysql sever.

  11. links for 2008-07-02 | Conteúdo Interativo
    July 2nd, 2008 18:30
    11

    [...] Enable MySQL InnoDB Storage Engine Support in XAMPP Installation » My Digital Life Habilitando o InnoDB e permitindo o MySQL funcionar com recursos de relacionamento e orientação (tags: mysql innodb relacionamento) [...]

  12. prabhu
    July 9th, 2008 20:13
    12

    hi,
    i folowed the steps which you mentionen above, also i changed in my.cnf file and restarted the apachi and mysql. But i could not get innodb in the table type dropdown box.

  13. Ruben-RY
    September 18th, 2008 01:59
    13

    Excellent it worked!

    Thanks

  14. Benni
    October 11th, 2008 03:47
    14

    Thanks for this post. It helped me out a lot.

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe without commenting


Custom Search

New Articles

Incoming Search Terms for the Article

xampp innodb - enable innodb - innodb xampp - xampp mysql innodb - how to enable innodb - xampp enable innodb - phpmyadmin innodb - mysql enable innodb - mysql innodb enable - enable innoDB mysql - enabling innodb - innodb enable - how to enable innodb in mysql - mysql activate InnoDB - enable innodb xampp - innoDB phpMyAdmin - InnoDB is not enabled in the database - InnoDB storage engine is not supported - enable InnoDB in Xampp - activate innodb mysql - enable innodb in mysql - xammp innodb - mysql innodb xampp - phpmyadmin enable innodb - activate innodb - Enable InnoDB phpmyadmin - enable mysql innodb - enable InnoDB - xampp mysql - xampp activate innodb - how to enable innodb mysql - innodb mysql xampp - enable InnoDB on mysql - mysql inodb - how to enable innodb in phpmyadmin - mysql enabling innodb - enable innodb engine - xampp and innodb - xampp innodb enable - xampp InnoDB MySQL - how to enable InnoDB in xampp - mysql innodb activate - xampp+InnoDB - MySQL InnoDB support - how to enable innodb support in mysql - enable innodb storage engine - activate innoDB in mysql - enable innodb mysql xampp - how to enable innodb xampp - mysql enable innodb engine - innodb in xampp - xampp + innodb - How to enable InnoDB - mysql innodb phpmyadmin - enable innodb in phpmyadmin - InnoDB+Xampp - node/346 - xampp mysql enable innodb - innodb + xampp - how to enable mysql innodb - InnoDB mysql engine support - enabling Innodb xampp - enable MySQL InnoDB support - mysql xampp innodb - enabling InnoDB in MySql - xampp no innodb - InnoDB storage engine is not supported - innodb mysql enable - xampp innoDB - enable innodb mysql 5 - Enabling innodb in Xampp - enable InnoDB support - enable innodb on xampp - innodb en xampp - activating innodb mysql -