Create MariaDB Windows Service

I’d had some difficulty manually creating my own windows service for MariaDB (worked fine from the installer), but it was due to the way I was creating it, so I wanted to share the proper approach:

Old Way:

sc create "maria55" binpath= "\"C:/Program Files/MySQL/MariaDB 5.5/bin/mysqld\" 
\"--defaults-file=C:/Program Files/MySQL/MariaDB 5.5/data/my.ini\"" 
DisplayName= "Maria55" start= "auto"

New Way:

sc create "maria55" binpath= "\"C:/Program Files/MySQL/MariaDB 5.5/bin/mysqld\" 
\"--defaults-file=C:/Program Files/MySQL/MariaDB 5.5/data/my.ini\" maria55" 
DisplayName= "Maria55" start= "auto"

The key is adding the name, maria55, after the –defaults-file=.. option, but still within the “” that belong to “binpath”.

This extra parameter exists so that mysqld knows whether or not it was started as a service or not.

Without it, the server does not know, and therefore didn’t realize it was running as a service, and thus since the service manager got no response from mysqld, it terminated the service after 30 seconds (though I could connect and issue any MySQL command or query within that 30 seconds).

Many thanks to Wlad for helping me to track this down!

For reference, here is my terminal output:

C:\>sc create "maria55" binpath= "\"C:/Program Files/MySQL/MariaDB 5.5/bin/mysqld\" 
\"--defaults-file=C:/Program Files/MySQL/MariaDB 5.5/data/my.ini\" maria55" 
DisplayName= "Maria55" start= "auto"
[SC] CreateService SUCCESS

C:\Users\Chris>net start maria55
The maria55 service is starting.
The maria55 service was started successfully.

With the initial service attempt, the service creates fine, but fails after 30 seconds:

C:\Users\Chris>net start maria55
The service is not responding to the control function.

More help is available by typing NET HELPMSG 2186.

Hope this helps.


SkySQL Raises $4 Million in Series A Round Funding

I am very pleased to say that earlier today, SkySQL announced it has raised $4 Million in Series A Round Funding.

Let me post the main part of the press release here:

SAN JOSE – April 18, 2012SkySQL, the first choice in affordable database solutions for the MySQL® and MariaDB® databases in the enterprise and the cloud, today announces that the company has raised $4 million in Series A funding from a number of investors, including OnCorps, an elite peer-based community of veteran technology investors and advisors committed to bringing better, cost-disruptive technologies into the mainstream. Also funding the round are European investors including Finnish Industry Investment Ltd., Spintop Ventures and Open Ocean Capital.

SkySQL will primarily use the investment to fund growth in its new product development, including adding critical positions. This is the company’s most recent move in expanding beyond a MySQL and MariaDB services-only company into a fully-fledged database products and services provider. SkySQL made its debut in October 2010 and has been funded to date with seed money from OnCorps, as well as Open Ocean Capital. Today, SkySQL is currently operating in 13 countries.

“The SkySQL strategy aligns well with OnCorps’s technology leadership vision,” said Bob Suh of OnCorps. “SkySQL will capitalize on the growing database and cloud services market. We are delighted and look forward to working with the SkySQL team to contribute to their continued success.”

“This investment will let us focus on ramping up development and efforts behind both enterprise and cloud database products that address a very real need in the marketplace,” said Ulf Sandberg, chief executive officer of SkySQL. “We also plan to build on our existing MySQL and MariaDB services offering, which offers customers unrivaled support, consulting and training.”

You can read the full press release here:

Very exciting times! 🙂


MariaDB 5.5 is now GA

Well, as you or may not have heard, MariaDB 5.5 (5.5.23) was declared GA last week!

It was only about 6-ish weeks ago that MariaDB 5.5 had been released as alpha, so the fact it’s already GA is excellent news for all MariaDB users (and MySQL 5.5 users looking to migrate).

Some of the 5.5 enhancements include:

  • Significantly more efficient thread pool, comparable in functionality to the closed source feature in MySQL Enterprise.
  • Non-blocking client API Library (MWL#192)
  • @@skip_replication option (MWL#234)
  • SphinxSE updated to version 2.0.4.
  • “extended keys” support for XtraDB and InnoDB
  • New INSTALL SONAME statement
  • New LIMIT ROWS EXAMINED optimization.
  • mysql_real_connect() Changes
    In MySQL, and in MariaDB versions before 5.5.21, mysql_real_connect() removes from the MYSQL object any options set with mysql_option() when it fails. Beginning with MariaDB 5.5.21, options are preserved by a failing mysql_real_connect(); use mysql_close(), as normal, to clear them.
    This only has effect if the MYSQL object is reused after a mysql_real_connect() failure (which is unusual). No real-life incompatibilities are expected from this change (it is unlikely that an application would rely on options being automatically removed between connection attempts).

  • The variables replicate_do_*, replicate_ignore_*, and replicate_wild_* have been made dynamic, so they can be changed without requiring a server restart. See Dynamic Replication Variables for more information.
  • Updates to performance schema tables are not stored in binary log and thus not replicated to slaves. This is to ensure that monitoring of the master will not cause a slower performance on all slaves. This also fixes a crash on the slaves.

Here is the official “What is MariaDB 5.5” page:

Also of interest:

Release Notes
General Info

And as always, if you’d like full support for MariaDB, just contact us at SkySQL.

Hope this helps.


MariaDB 5.3 is now GA

This is another, in-case-you-missed-it, but it is definitely worth mentioning again:

MariaDB 5.3 is now GA

So, if you’re using MariaDB 5.1 or 5.2, I’d definitely recommend upgrading to the new MariaDB 5.3.

Also, if you’re a Windows user using MySQL 5.1, I’d highly consider making the switch to MariaDB 5.3 due to all of the Windows-specific improvements in it.

MariaDB 5.3 Enhancements:

  • Subquery optimizations
  • Semi-join subquery optimizations
  • Non-semi-join optimizations
  • Subquery Cache
  • Subquery Optimizations Map
  • Optimizations for derived tables and views
  • Disk access optimization
  • Join optimizations
  • Index Merge improvements
  • Optimizer control
  • NoSQL-style interfaces
  • Group commit for the binary log
  • Replication and binary logging enhancements
  • Microsecond support for NOW() and timestamp, time, and datetime columns
  • Windows performance improvements
  • And a number of other general improvements

MariaDB 5.3 Windows-Specific Performance improvements include:

  • Backported Windows performance patches from MySQL 5.5
  • Asynchronous IO in XtraDB is redesigned and is now faster, due to the use of IO completion ports
  • Additional durability option for XtraDB : innodb_flush_method can now be O_DSYNC, like on Unixes. (The effect of using this option is that the log file is opened with FILE_FLAG_WRITETHROUGH, and FlushFileBuffers() is not done. This may improve speed in write-heavy scenarios.)
  • A new Windows MSI installer
  • Includes a GUI-tool, HeidiSQL

All of the above, and more are documented in further detail here:

You can download it here:

(And just for reference, if running MariaDB you should probably keep your eye on the new MariaDB 5.5 too (5.5.20 was alpha, 5.5.21 is now beta), benchmarks here).

Hope this helps.

MariaDB 5.5 has been Released

In case you didn’t notice it last week, MariaDB 5.5 (5.5.20, specifically) has been released.

It’s a release I’ve been looking forward to for a while now, so I’m very excited that it’s now available! 🙂

Note that it is currently ‘alpha’ since it is the very first release of MariaDB 5.5. However, it is not your typical new ‘alpha’, so I would expect it to be GA in the not-so-distant future (please don’t quote me on this though, as I have no idea of the true time table – but the goal is for the next 5.5 release to be ‘beta’).

You can download MariaDB 5.5 from the following location:

There are also more details on this 5.5.20 MariaDB version here:

What is MariaDB 5.5
Release Notes
General Info


Building MariaDB 5.3 on Windows

I just wanted to share my steps for building MariaDB 5.3 on Windows. (Note, this is not much different than the instructions Wlad posted here).

But, things are not always so smooth, and of course I ran into a couple small issues, so I wanted to share my outputs plus those issues and their solutions (once again many thanks go to Wlad!) for those out there who might encounter the same.

Here are the steps to build:

  1. Download MariaDB 5.3 and extracted to C:\mariadb-5.3
  2. cd C:\mariadb-5.3
  3. mkdir bld
  4. cd bld
  5. cmake .. -G "Visual Studio 9 2008"
  6. cmake --build . --config relwithdebinfo --target package

* By making a sub-dir named ‘bld’ and cd’ing into it, you’ll keep all of your build files in their own dir. This way, it is easy to start over (just delete /bld/) and it also keeps your sourcedir clean and looking like it does originally.

** The last command is the build command issued from the command line. You could accomplish the same with the following commands from within Visual Studio:

VS2008: File -> Open -> Solution -> C:\mariadb-5.3\bld\MySql.sln
VS2008: Build -> Build Solution
VS2008: Right-click "PACKAGE" -> Build



C:\Users\Chris>cd C:\mariadb-5.3

C:\mariadb-5.3>mkdir bld

C:\mariadb-5.3>cd bld

C:\mariadb-5.3\bld>cmake ..
-- Building for: Visual Studio 8 2005
-- Check for working C compiler using: Visual Studio 8 2005
-- Check for working C compiler using: Visual Studio 8 2005 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 8 2005
-- Check for working CXX compiler using: Visual Studio 8 2005 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - not found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of void *
-- Check size of void * - done
-- Using Aria for temporary tables
build ARCHIVE as static library (libarchive.lib)
build BLACKHOLE as static library (libblackhole.lib)
build CSV as static library (libcsv.lib)
build FEDERATEDX as static library (libfederatedx.lib)
build HEAP as static library (libheap_s.lib)
build ARIA as static library (libaria_s.lib)
build MYISAM as static library (libmyisam_s.lib)
build MYISAMMRG as static library (libmyisammrg_s.lib)
build PBXT as static library (libpbxt_s.lib)
build XTRADB as static library (libxtradb.lib)
build FEEDBACK as static library (libfeedback.lib)
build EXAMPLE as DLL (ha_example.dll)
build FEDERATED as DLL (ha_federated.dll)
build INNODB_PLUGIN as DLL (ha_innodb_plugin.dll)
-- Could NOT find Boost
-- Performing Test BOOST_OK
-- Performing Test BOOST_OK - Failed
build SPHINX as DLL (ha_sphinx.dll)
-- Looking for MFC
-- Looking for MFC - found
-- Cannot find wix 3, installer project will not be generated
-- Configuring done
-- Generating done
-- Build files have been written to: C:/mariadb-5.3/bld

I first compiled from within Visual Studio (alternate step #6), and here is the last line of that output:

========== Build: 84 succeeded, 1 failed, 2 up-to-date, 6 skipped ==========

(More on the 1 error below – but it’s safe to ignore.)

And here is the output from the command line compilation (since I did this second, there was not nearly the output, so I ‘ll post it all):

C:\mariadb-5.3\bld>cmake --build . --config relwithdebinfo --target package

Microsoft (R) Visual C++ Express Edition Version 9.0.30729.1.
Copyright (C) Microsoft Corp 2007. All rights reserved.
1>------ Build started: Project: PACKAGE, Configuration: RelWithDebInfo Win32 ------
1>Performing Post-Build Event...
1>CPack: Create package using ZIP
1>CPack: Install projects
1>CPack: - Install project: MySql
1>CPack: Create package
1>CPack: - package: C:/mariadb-5.3/bld/ generated.
1>Build log was saved at "file://c:\mariadb-5.3\bld\PACKAGE.dir\RelWithDebInfo\BuildLog.htm"
1>PACKAGE - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 86 up-to-date, 0 skipped ==========


Error Appendix:

CMake – Cannot find source file “”:

cmake ..
Cannot find source file ""


Upgrading CMake from 2.6 (2.6.4) to 2.8 (2.8.7) worked and eliminated this error. You can download it from here.


CMake – General Comment:

If you have previously installed Visual Studio 2005 and now have installed Visual Studio 2008 (or 2008 and 2010, or some other mix), it is probably best to specify the Generator when invoking cmake. I was getting various strange errors when I did not specify the generator of the Visual Studio I use to compile. Specifically, my cmake was using the VS2005 generator, but I was building with VS2008. So, I had to perform a conversion when opening the solution in VS, not to mention some other starange issues were occurring (saying I passed MFC test, but I was using VS2008 Express, so I did not have the proper MFC for VS2008). Similarly, cmake using relwithdebinfo failed too.


Instead of using:

cmake ..


cmake .. -G "Visual Studio 9 2008"

If you’re not sure what string to use for -G, simply run “cmake” from the command line, with no arguments, and it will display the various available options. For instance:

cmake version 2.8.7
The following generators are available on this platform:
  Visual Studio 10            = Generates Visual Studio 10 project files.
  Visual Studio 11            = Generates Visual Studio 11 project files.
  Visual Studio 8 2005        = Generates Visual Studio .NET 2005 project
  Visual Studio 9 2008        = Generates Visual Studio 9 2008 project files.


Build – afxwin.h missing error – mysql_upgrade_wizard error:

VS2008 Build ..
11>Build log was saved at "file://c:\mariadb-5.3\bld\win\upgrade_wizard\
11>mysql_upgrade_wizard - 1 error(s), 0 warning(s)
c:\mariadb-5.3\win\upgrade_wizard\stdafx.h(23) : fatal error C1083: 
Cannot open include file: 'afxwin.h': No such file or directory


Since this is just the mysql_upgrade_wizard, this can be ignored unless you specifically need this.

Otherwise, locate ‘afxwin.h’ and store it to the correct location.

Note that you’re likely receiving this if you using the Visual Studio Express Edition, as ‘afxwin.h’ is not available in the Express Edition, as described on the following pages:


Other common build errors and their solutions can be found here.


Related Build Links:


Building MariaDB 5.1 on Windows

Recently, I found myself needing MariaDB 5.1.60 for Windows for some testing purposes. Therefore, I needed to build it from source. I ended up using what I’d call a “blend” of the commands listed in this “how-to” and the readme file INSTALL-WIN-SOURCE, so I thought I’d post those steps.

  1. Download 5.1.60 MariaDB source from here.
  2. cd C:\mariadb-5.1
  3. win\configure.js
  4. cmake .
  5. VS: File -> Open -> Solution -> MySql.sln
  6. VS: Build -> Build Solution
  7. VS: Right-click “PACKAGE” -> Build (in “Solution Explorer” View)

That’s it.

Let’s fire it up:

MariaDB> select version();
| version()            |
| 5.1.60-MariaDB-debug |

MariaDB> show global variables like 'innodb_version';
| Variable_name  | Value       |
| innodb_version | 1.0.17-13.0 |

MariaDB> show engines;
| Engine     | Support | Comment		   ...
| CSV        | YES     | CSV storage engine	   ...
| InnoDB     | DEFAULT | Percona-XtraDB, Supports t...
| PBXT       | YES     | High performance, multi-ve...
| MARIA      | YES     | Crash-safe tables with MyI...
| MyISAM     | YES     | Default engine as of MySQL...
| FEDERATED  | YES     | FederatedX pluggable stora...
| MRG_MYISAM | YES     | Collection of identical My...
| MEMORY     | YES     | Hash based, stored in memo...


For reference, here are my full outputs:

C:\Users\Chris>cd ..\..\mariadb-5.1


C:\mariadb-5.1>cmake .
-- Check for working C compiler: cl
-- Check for working C compiler: cl -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: cl
-- Check for working CXX compiler: cl -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
build CSV as static library (libcsv.lib)
build FEDERATEDX as static library (libfederatedx.lib)
build HEAP as static library (libheap_s.lib)
build MARIA as static library (libmaria_s.lib)
build MYISAM as static library (libmyisam_s.lib)
build MYISAMMRG as static library (libmyisammrg_s.lib)
build PBXT as static library (libpbxt_s.lib)
build XTRADB as static library (libxtradb.lib)
build ARCHIVE as DLL (ha_archive.dll)
build BLACKHOLE as DLL (ha_blackhole.dll)
build EXAMPLE as DLL (ha_example.dll)
build FEDERATED as DLL (ha_federated.dll)
build INNODB_PLUGIN as DLL (ha_innodb_plugin.dll)
-- Configuring done
-- Generating done
-- Build files have been written to: C:/mariadb-5.1

Open Visual Studio -> File -> Open -> Project/Solution -> Select C:\mariadb-5.1.60\MySql.sln

Build Solution Output:

========== Build: 79 succeeded, 0 failed, 2 up-to-date, 2 skipped ==========

Package Build Output:

1>------ Build started: Project: PACKAGE, Configuration: Debug Win32 ------
1>Performing Post-Build Event...
1>CPack: Create package using NSIS
1>CPack: Install projects
1>CPack: - Install project: MySql
1>CPack: -   Install component: Unspecified
1>CPack: -   Install component: headers
1>CPack: -   Install component: mysqltest
1>CPack: -   Install component: runtime
1>CPack: -   Install component: scripts
1>CPack: -   Install component: sqlbench
1>CPack: Compress package
1>CPack: Finalize package
1>CPack: Package C:/mariadb-5.1/MariaDB-5.1.60-win32.exe generated.
1>Build log was saved at "file://c:\mariadb-5.1\PACKAGE.dir\Debug\BuildLog.htm"
1>PACKAGE - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 81 up-to-date, 0 skipped ==========



InnoDB Plugin Version History

I’m often wondering what version of the InnoDB Plugin is included with which version of MySQL (or MariaDB). The MySQL changelogs used to denote which version of the InnoDB plugin was included with that particular release of MySQL, but sadly this is no longer the case.

Therefore I’ve compiled a comprehensive list which contains all of this info, and then some (and note all InnoDB Plugin changelog links are provided at the bottom).

Hope you find it helpful 🙂

MySQL 5.6:

MySQL     Plugin     Status Date
5.6.5 1.2.5 Milestone 8 04/10/2011
5.6.4 1.2.4 Milestone 7 12/20/2011
5.6.3 1.2.3 Milestone 6 10/03/2011
5.6.2 1.2.2 Milestone 5       04/11/2011

MySQL 5.5:

MySQL     Plugin     Status Date
5.5.24 1.1.8 GA 05/07/2012
5.5.23 1.1.8 GA 04/12/2012
5.5.22 1.1.8 GA 03/21/2012
5.5.21 1.1.8 GA 02/17/2012
5.5.20 1.1.8 GA 01/10/2012
5.5.19 1.1.8 GA 12/08/2011
5.5.18 1.1.8 GA 11/16/2011
5.5.17 1.1.8 GA 10/19/2011
5.5.16 1.1.8 GA 09/15/2011
5.5.15 1.1.8 GA 07/28/2011
5.5.14 1.1.8 GA 07/05/2011
5.5.13 1.1.7 GA 05/31/2011
5.5.12 1.1.6 GA 05/05/2011
5.5.11 1.1.6 GA 04/07/2011
5.5.10 1.1.5 GA 03/15/2011
5.5.9 1.1.5 GA 02/07/2011
5.5.8 1.1.4 GA 12/03/2010
5.5.7 1.1.3 GA 10/14/2010
5.5.6 1.1.2 GA 09/13/2010
5.5.5 1.1.1 Early Adopter    06/06/2010 *3
5.5.4 1.1.0 Beta 04/09/2010 *2
5.5.3 1.0.6 RC 03/24/2010
5.5.2 1.0.6 RC 02/12/2010
5.5.1 1.0.6 RC 01/04/2010
5.5.0 1.0.5 RC 12/07/2009 *1

*1: The InnoDB Plugin is included in MySQL 5.5 releases as the built-in version of InnoDB.
*2: InnoDB has been upgraded to version 1.1. This version is considered of Beta quality.
*3: InnoDB has been upgraded to version 1.1.1. This version is considered of “early adopter” quality.

MySQL 5.1:

MySQL     Plugin     Status     Date
5.1.62 1.0.17 GA 03/21/2012
5.1.61 1.0.17 GA 01/10/2012
5.1.60 1.0.17 GA 11/16/2011
5.1.59 1.0.17 GA 09/15/2011
5.1.58 1.0.17 GA 07/05/2011
5.1.57 1.0.16 GA 05/05/2011
5.1.56 1.0.15 GA 03/01/2011
5.1.55 1.0.15 GA 02/07/2011
5.1.54 1.0.14 GA 11/26/2010
5.1.53 1.0.13 GA 11/03/2010
5.1.52 1.0.13 GA 10/11/2010
5.1.51 1.0.12 GA 09/10/2010
5.1.50 1.0.11 GA 08/03/2010
5.1.49 1.0.10 GA 07/09/2010
5.1.48 1.0.9 GA 06/02/2010
5.1.47 1.0.8 GA 05/06/2010
5.1.46 1.0.7 GA 04/06/2010
5.1.45 1.0.6 RC 03/01/2010
5.1.44 1.0.6 RC 02/04/2010
5.1.43 1.0.6 RC 01/15/2010
5.1.42 1.0.6 RC 12/15/2009
5.1.41 1.0.5 RC 11/05/2009 *4
5.1.40 1.0.4 Beta 10/06/2009
5.1.39 1.0.4 Beta 09/04/2009
5.1.38 1.0.4 Beta 09/01/2009 *3
x.x.xx 1.0.3 Alpha 03/11/2009
x.x.xx 1.0.2 Alpha 12/01/2008
x.x.xx 1.0.1 Alpha 05/08/2008 *2
x.x.xx 1.0.0 Alpha 04/15/2008 *1

*1: The initial release of the InnoDB Plugin is based on the built-in InnoDB in MySQL version 5.1.
*2: These 4 versions (1.0.0 – 1.0.3) were only available as separate downloads.
*3: 1st Release of Plugin (see *1* below for more details)
*4: InnoDB Plugin has been upgraded to version 1.0.5. This version is considered of Release Candidate (RC) quality.

MariaDB 5.5:

MariaDB     Plugin     Status    Date            Comments
5.5.24 1.1.8-24.1 GA 05/24/12 XtraDB+
5.5.24 1.1.8 GA 05/24/12 InnoDB
5.5.23 1.1.8-24.1 GA 04/11/12 XtraDB+
5.5.23 1.1.8 GA 04/11/12 InnoDB
5.5.22 1.1.8-24.1 RC 03/29/12 XtraDB+
5.5.22 1.1.8 RC 03/29/12 InnoDB
5.5.21 1.1.8-24.1 Beta 03/16/12 XtraDB+
5.5.21 1.1.8 Beta 03/16/12 InnoDB
5.5.20 1.1.8-24.1     Alpha 02/26/12 XtraDB+
5.5.20 1.1.8 Alpha 02/26/12 InnoDB

MariaDB 5.3:

MariaDB     Plugin     Status    Date            Comments
5.3.7 1.0.17-13.0 GA 05/04/12 XtraDB+
5.3.7 1.0.17 GA 05/04/12 InnoDB
5.3.6 1.0.17-13.0 GA 04/09/12 XtraDB+
5.3.6 1.0.17 GA 04/09/12 InnoDB
5.3.5 1.0.17-13.0 GA 02/29/12 XtraDB+
5.3.5 1.0.17 GA 02/29/12 InnoDB
5.3.4 1.0.17-13.0 GA 02/15/12 XtraDB+
5.3.4 1.0.17 GA 02/15/12 InnoDB
5.3.3 1.0.17-13.0 GA 12/21/11 XtraDB+
5.3.3 1.0.17 GA 12/21/11 InnoDB
5.3.2 1.0.15-12.7     GA 10/14/11 XtraDB+
5.3.2 1.0.16 GA 10/14/11 InnoDB

MariaDB 5.2:

MariaDB     Plugin     Status    Date            Comments
5.2.12 1.0.17-13.0 GA 04/06/12 XtraDB+
5.2.12 1.0.17 GA 04/06/12 InnoDB
5.2.11 1.0.17-13.0 GA 04/02/12 XtraDB+
5.2.11 1.0.17 GA 04/02/12 InnoDB
5.2.10 1.0.17-13.0 GA 12/05/11 XtraDB+
5.2.10 1.0.17 GA 12/05/11 InnoDB
5.2.9 1.0.15-12.7     GA 09/22/11 XtraDB+
5.2.9 1.0.16 GA 09/22/11 InnoDB

MariaDB 5.1:

MariaDB     Plugin     Status    Date            Comments
5.1.62 1.0.17-13.0 GA 04/06/12 XtraDB+
5.1.62 1.0.17 GA 04/06/12 InnoDB
5.1.61 1.0.17-13.0 GA 04/02/12 XtraDB+
5.1.61 1.0.17 GA 04/02/12 InnoDB
5.1.60 1.0.17-13.0 GA 12/05/11 XtraDB+
5.1.60 1.0.17 GA 12/05/11 InnoDB
5.1.55 1.0.15-12.5     GA 03/01/11 XtraDB+ *1
5.1.55 1.0.15 GA 03/01/11 InnoDB

*1: XtraDB+ differs some from XtraDB as it contains even further enhancements on top of XtraDB. If you use the default (i.e., do not enable the InnoDB plugin in the my.cnf file), then you will be using XtraDB+. If you enable the InnoDB Plugin in the my.cnf file, then you are enabling the standard InnoDB Plugin. Please see the following 2 links for more details on these differences: (work by Wlad) (work by KNielsen)

There are even some more optimizer additions, but no graphs yet to report.


Note: The plugin versions had their own changelogs initially, but eventually the changes were just mixed into the general changelogs for the MySQL Server.

Note: Also, some plugin versions span multiple MySQL versions, so those have multiple links below.

Plugin 1.1:


Plugin 1.0:


Misc. Notes:

5.1.38 is first release of the plugin

And for reference, here is the text from that announcement regarding the InnoDB Plugin:

C.1.1. Changes in MySQL 5.1.38

  As of MySQL 5.1.38, the InnoDB Plugin is included in MySQL
  releases, in addition to the built-in version of InnoDB that
  has been included in previous releases. This version of the
  InnoDB Plugin is 1.0.4 and is considered of Beta quality.

  The InnoDB Plugin offers new features, improved performance
  and scalability, enhanced reliability and new capabilities
  for flexibility and ease of use. Among the features of the
  InnoDB Plugin are "Fast index creation," table and index
  compression, file format management, new INFORMATION_SCHEMA
  tables, capacity tuning, multiple background I/O threads, and
  group commit.

  For information about these features, see the InnoDB Plugin
  Manual at
  For general information about using InnoDB in MySQL,
  see Section 13.6, "The InnoDB Storage Engine."

  The InnoDB Plugin is included in source and binary
  distributions, except RHEL3, RHEL4, SuSE 9 (x86, x86_64,
  ia64), and generic Linux RPM packages.

  To use the InnoDB Plugin, you must disable the built-in
  version of InnoDB that is also included and instruct the
  server to use InnoDB Plugin instead. To accomplish this, use
  the following lines in your my.cnf file:


  For the plugin-load option, innodb is the name to associate
  with the plugin and is the name of the
  shared object library that contains the plugin code. The
  extension of .so applies for Unix (and similar) systems. For
  HP-UX on HPPA (11.11) or Windows, the extension should be .sl
  or .dll, respectively, rather than .so.

  If the server has problems finding the plugin when it starts
  up, specify the pathname to the plugin directory. For
  example, if plugins are located in the lib/mysql/plugin
  directory under the MySQL installation directory and you have
  installed MySQL at /usr/local/mysql, use these lines in your
  my.cnf file:


  The previous examples show how to activate the storage engine
  part of InnoDB Plugin, but the plugin also implements several
  InnoDB-related INFORMATION_SCHEMA tables. (For information
  about these tables, see
  To enable these tables, include additional name=library
  pairs to the plugin-load option:


  The plugin-load option here is formatted on multiple lines
  for display purposes but should be written in my.cnf using a
  single line without spaces in the option value. On Windows,
  substitute .dll for each instance of the .so extension.

  After the server starts up, verify that InnoDB Plugin has
  been loaded by using the SHOW PLUGINS statement. For example,
  if you have loaded the storage engine and the
  INFORMATION_SCHEMA tables, the output should include lines
  similar to these:

    mysql> SHOW PLUGINS;
    | Name                | Status | Type               | Library             ...
    | InnoDB              | ACTIVE | STORAGE ENGINE     | ...

  If you build MySQL from a source distribution, InnoDB Plugin
  is one of the storage engines that is built by default. Build
  MySQL the way you normally do; for example, by using the
  instructions at Section 2.10, "MySQL Installation Using a
  Source Distribution." After the build completes, you should
  find the plugin shared object file under the
  storage/innodb_plugin directory, and make install should
  install it in the plugin directory. Configure MySQL to use
  InnoDB Plugin as described earlier for binary distributions.

Misc Links: