Monday, August 2, 2010

MySQL Cluster on Windows - NDB API part 1

So you thought that just because MySQL Cluster 7.1 is GA on Windows that NDB API was available and you could just download the MySQL Cluster 7.1 binary for Windows and start hacking the NDB API. Nope. But fear not, there is help!

And before I go on with that: For all you *ix users here, who claim that no one in their right mind would use MySQL Cluster on Windows, let me tell you that you may well be right! But, and this may be a not so PC statement: Although I like and use *ix (I've actually been using *ix for close to 30 years) as a server platform, when it comes to the desktop, I think Windows still has the edge. There is just too many options on, say Linux, too little coherence and too little commonality between applications. And it sure is getting better, very much so, but there is still some way to go.

So then, when we have my reasons for me doing what I am currently doing behind our backs, what I am trying to achive is a nice GUI application, using the currently best (in my mind, but maybe not by a long stretch), to manage a MySQL Cluster setup running on the best, most cost effective (again in my mind), server platform: Linux.

And to do that, you really need to use the NDB API and most important, the NDB MGM API. And to use those, you have to complile MySQL Cluster on Windows yourself. And it's not that difficult. What you need is:
  • The MySQL Cluster for Windows source.
  • Download this and unpack it and look in the file INSTALL-WIN-SOURCE and follow the instructions.
  • CMAKE (look in INSTALL-WIN-SOURCE in the root on the unzipped source).
  • Some version of Microsoft Visual Studio. VS 2008 and 2010 is fine, whatever INSTALL-WIN-SOURCE says. What is NOT fine is VS 2003, again contradicting what INSTALL-WIN-SOURCE says.
  • And speaking of contradictions in INSTALL-WIN-SOURCE, MySQL Cluster on Windows is NOT "Experimental" or "Beta" or something, it is fully supported GA, indepentent of what INSTALL-WIN-SOURCE says.
OK, so follow the instructions in INSTALL-WIN-SOURCE and from Visual Studio open the project file as indicated by INSTALL-WIN-SOURCE and do a build.

Now, when the build is finished, you may well see a few errors. If the errors are related to something indication JAVAC missing, you are also OK. The requirement for a java compiler was, again, not mentioned in INSTALL-WIN-SOURCE, but what the heck, let's go on with our lives and have some fun instead of complaining about an outrageously ourdated text-file, most of the instructions are OK anyway. And yes, even though the JAVAC missing stuff, the build of NDB API and NDB MGM API probably went OK.

The next step is to install the appropriate includiles and libraries, but I'll hold that til the next part. In part 3, I will show some NDB API code for Windows, and by that time, I'll be ready to release MyQuery 3.3 that includes some NDB management functions, accessible from the nice MyQuery SQL GUI. Looking something like the image to the left!

See you soon!



Jon Stephens said...

Karlsson is correct, MySQL Cluster on Windows became GA with the NDB-7.1.3 release (you can easily verify this from the online documentation). Unfortunately, the INSTALL-WIN-SOURCE and INSTALL-SOURCE files (I assume Karslsson was actually referring to one of these) apparently wasn't updated when the 7.1.4b archive was built.

See Installing MySQL Cluster on Windows for more information.


Jon Stephens
MySQL Docs @ Oracle

Karlsson said...

Yes, this is reported by me as bug #54264, which is assigned to you :-)

Jon Stephens said...

Yes, and I fixed and closed 54264 on 11 June, less than a week after you filed it.

There's not been another MySQL Cluster downloadable release made since then, so unless I can borrow your time machine to go back and fix the existing release, you'll just have to wait until the next one. :)

Karlsson said...

Of course you can borrow my time machine... :-)