Skip to content

Article about MySQL and Java installation published

Last week I was notified that my article about how to install and configure MySQL and the MySQL Connector/J was published in the Java Starter Magazine, a special edition of the german Java Magazin. It covers the basic installation of MySQL and Connector/J on Windows and Linux and how to write a small example program to connect to to MySQL with Java using the Eclipse framework. They were kind enough to send me a number of copies that I plan to give away at tonight's Hamburg MySQL User Group Meeting.

Discovering KeyJnote for smooth presentations

A while back I blogged about my experiences in convincing OpenOffice Impress to display text bullets on a slide one after another instead of showing them all at once. Back then, I also toyed around with how to softly fade between two presentation slides, as OOo provided a lot of different effects for this (yes, I succumb to eyecandy but I know you should not overload your slides with too many of it). While I got it working in the end, I found it quite time consuming to apply the effect for each and every slide and the transitions were not as smooth as I would have hoped (I am not sure if it's OOo or the X server itself that is so slow in rendering full screen updates).

While listening Sebastian Kügler's FrOSCon presentation about KDE World Domination, I was quite stunned by the very soft transitions between his slides and what kind of effects were used. After he also quickly switched between an overview mode and individual slides by quickly zooming out and into another slide, I was quite convinced that he had to be using Keynote on a Mac. Which I personally would have found confusing, given that he was there to talk about how to promote the KDE desktop :-)

I was delighted to learn that he was actually using KeyJnote, which is a little Python script that takes any PDF as an input file to generate the slide show. Alternatively, you can point it to a directory with pictures, that will then be used for the slide show. It uses OpenGL for the rendering, so it requires a proper DRI setup. Fortunately SUSE Linux 10.1 already ships with all the required components to get the script working (In addition to Python and Ghostscript, it requires the following RPMs to be installed: pdftk, python-imaging, python-opengpython-pygame). As I can finally use the ATI Radeon 9600 Mobility GPU in my IBM Thinkpad T42 Laptop with the free r300 3D-driver, I of course had to give it a try and am quite happy with it!

To ease the installation of the script, I've now built an RPM for SUSE Linux 10.1, which you can now download from my RPM download section. It might work on older SUSE releases as well, as long as the RPM dependencies are fulfilled. Have fun!

Storage Engines galore!

The modular concept of MySQL that separates the storage engines from the SQL parser and optimizer has recently caused a number of new, independently developed storage engines to surface. Here's an incomplete selection of projects around this concept:
  • DDE - Distributed Data Engine, a research project of the Technical University of Dresden
  • mdbtools - a storage engine that allows readonly access to Microsoft Access .mdb database files
  • PBXT - a new, transactional storage engine by Paul McCullagh
  • ritmarkFS - a storage engine that represents the content of a directory as a table
  • solidDB - another transactional storage engine with many features, developed by Solid.
Also check the MySQL plugins category on the MySQL Forge for more of these and please add more to the Forge Project directory, if you are aware of other interesting MySQL plugins!

Currently, the integration of these engines into the server is still a bit tricky, as it requires patching and recompiling of the server sources. Hopefully all this won't be required in the near future, when our truly pluggable storage engine API in MySQL 5.1 has matured enough. It's very exciting to watch these projects to evolve.

And did you know that not only storage engines will be pluggable? MySQL 5.1 and up supports a plugin API that will allow the loading and unloading of other server components at runtime, without having to restart the server. This is intended as a more flexible replacement of the old UDF (user defined functions) interface. It will provide more modularity in the future - currently it already provides an API to implement different full-text parser plugins. This can be useful if you need to index context in other formats, e.g. PDF files or word documents. I am curious to see what other new plugins people will come up with in the future.

Invitation to join the Hamburg MySQL User Group Meeting on July, 3rd

If you happen to use MySQL and live around Hamburg, Germany, here's your chance to meet with other MySQL users, developers and DBAs: I am happy to announce the second Hamburg MySQL Usergroup Meeting, which will take place on Monday, 3rd of July, 19:00. The location will be the same one as last time, the chinese restaurant Ni Hao in Hamburg-Wandsbek.  The food there is quite excellent and they will provide us with a separate room and video projector again. I'll try to arrange a presentation about MySQL and there will be plenty of time for chatting and discussing. If you'd like to join us, please RSVP via our event page on meetup.com and join the mailing list for further details! Looking forward to meeting you! Some pictures of our last meeting are available in my gallery.

Source21.nl Video interview with David Axmark

While I was at the FOSDEM 2006 in Brussels, I got approached by the folks from Source21.nl about performing an interview about MySQL with them. But as David Axmark (who is one of the co-founders of MySQL) was around as well, I quickly directed them to talk with him instead. The vidcast (length is ~10 minutes, the WMV is ~30MB) is now available online in various formats (OGG, MP4 and WMV) from their web site. Have fun.

MySQL on exotic platforms: Stratus VOS anyone?

The MySQL code base is quite portable - we do build it on a wide variety of compilers, operating systems and architectures, sometimes just to test if it actually builds and passes the test suite. In fact, some bugs only surface under certain environments, so maintaining this diversity helps us to catch problems quickly. But of course there are still many platforms that are not directly supported or no longer maintained. For example, we removed support for OS/2 from our code base some time ago.

Just recently, somebody from Stratus posted patches to make MySQL build on the Stratus OpenVOS environment to our internals mailing list (which by they way is a great forum to discuss patches and hacking on MySQL with the developers directly - but not to ask support requests!). So if you are interested in getting MySQL up and running on VOS, you might want to get in touch with Paul Green from Stratus about this!

Back from a long weekend

Yesterday was a holiday in Germany (Pentecost), and again the weather was quite miserable, considering that it's June already. Nevertheless I spent some time in the garden, removing all withered flower clusters from the rhododendron bushes - this is called dead-heading and supposedly improves blooming in the following year. I also noticed that one of our bamboo bushes (fargesia nitida) has bloomed, which is a pretty rare case (for some species, this happens only once every 120 years)  but unfortunately also means that all bamboos of this species will bloom and die afterwards. I have already seen the same happening in several other gardens around Hamburg and spotted several postings from other bamboo fans in different forums. Looks like it's time to cut it down and dig out the roots.

The long weekend ended with a blast - yesterday I went to a Depeche Mode "Touring the Angel" Open Air Concert which took place in the Weserstadium in Bremen. The event was sold out and around 40.000 people were there to celebrate. I hadn't seen DM performing live before (except for video recordings), even though I am a great fan of them since the early eighties. It was awesome - they played a very good mixture of old and new material, including one of my personal favourites from their early days: "Photographic". It seems that I was lucky with my choice of location right in front of the stage - I did not experience any of the sound problems that many people reported on the german DM website. And the atmosphere there was great, too - people danced, clapped and cheered like mad, including me! And I guess I was also lucky to not have parked close to the stadium - the traffic around the arena came to a grinding halt after the event...

All in all I really enjoyed it - too bad it was over way too quickly!

All hail S.M.A.R.T. and external USB hard disk drives!

Long time no post! Last Sunday I spotted the following email in my junk mailfolder:
Date: Sun, 21 May 2006 19:08:39 +0200
From: root <root@metis.lenznet>
To: <lenz@localhost.metis.lenznet>
Subject: SMART error (OfflineUncorrectableSector) detected on host: metis

This email was generated by the smartd daemon running on:

host name: metis
DNS domain: lenznet
NIS domain:

The following warning/error was logged by the smartd daemon:

Device: /dev/hda, 1 Offline uncorrectable sectors

For details see host's SYSLOG (default: /var/log/messages).

You can also use the smartctl utility for further investigation.
No additional email messages about this problem will be sent.
Which did not sound too good. In addition to that, the system had failed to resume from a suspend to disk earlier that day - the kernel experienced disk read errors while trying to load the suspended image from the swap partition. Fortunately a fresh reboot still worked and I ran a more thorough analysis of the disk drive by using smartctl -t long /dev/hda. Using various Open Source tools from a SUSE Linux 10.1 rescue system (which boots off the first installation CD) helped me to backup and restore my data without losing anything (except for some time, of course). Continue reading "All hail S.M.A.R.T. and external USB hard disk drives!"

About OSS licencing and enforcing trademarks

This Wednesday I participated on a panel discussion about "Open Source in the Enterprise - Chances and Risks" at the JAX 2006 conference in Wiesbaden, Germany. It was a lively discussion, with good comments and questions from the audience.

One thing I found noteworthy is that many people still seem to be worried about using OSS when it comes to licensing and legal questions. In fact, these concerns seem to be more dominant than preoccupations about the technical capabilities of OSS software itself. Some claimed that they find OSS licenses confusing and do not feel certain if their usage of OSS actually complied to the licenses. I was thankful that we had Till Kreutzer from the ifrOSS on the panel as well, who (in my opinion) did a good job in dispelling a few myths and clarifying some popular questions.

One essential legal aspect of licensing OSS is of course the differentiation between using and distributing the software in question. There is a difference if you simply take OSS and use it for your personal needs and including and distributing it in your products. Naturally, there were some direct questions about our dual licensing model and I hope I managed to explain how it works.

However, the legal dimension of using OSS also relates to trademarks. With me on the panel was Tobias Hartwig from JBoss Germany and I felt a bit sorry for him, as he recieved quite some heat about certain activities that his company had been involved in last year. JBoss Inc. is very strict and protective when it comes to using their trade marks. They caused quite some uproar about this last year, when they sued a German training company about using the product name for their training courses after they terminated their partnership. JBoss was accused of basically using their trademark as a weapon to eliminate unwanted competition.

Which got me thinking, as we at MySQL AB also have to make sure, that our trade marks are being protected and used in the approriate way. Will we at some point get into the same situation as JBoss, being criticised for actions to protect our trademark? It seems that many people confuse copyright and trademark ownership with licensing agreements. Even though the GPL defines what you can do with the software itself, it does not cover the proper use of trademarks that might be affiliated with that code. In our case, we have registered "MySQL" as a word mark and have published guidelines about how to properly use our name and logos in our Trademark Policy.

It discusses the differentiation of trademarks and the GPL:

The GNU General Public License (the "GPL") is one of the ways by which MySQL AB distributes the MySQL server. The GPL permits third parties to use and redistribute the underlying software under certain circumstances. Such use and/or redistribution of MySQL AB software products are much welcomed by MySQL AB, but should be distinguished from the use of the MySQL Marks. The GPL does not provide any license or right to use any MySQL AB Mark in any form or media. Thus, although a GPL licensee may redistribute the underlying software, a GPL licensee may not use any MySQL AB Mark in doing so without the express prior written permission of MySQL AB. Otherwise, users could be misled into thinking that revisions made by a GPL licensee were created or endorsed by MySQL AB, or that those revisions met the quality control standards of MySQL AB.


It also states, why we consider our trademarks to be important for us:

Trademarks are important because they help to prevent confusion in the marketplace by distinguishing one company's products and services from the products and services of another. For example, when a user sees the MySQL mark on the MySQL server, the user understands that MySQL AB has either created or endorsed that product, and that the product is subject to the quality control standards of MySQL AB for that product. If anyone other than MySQL AB or one of its authorized partners or licensees were to use one of the MySQL AB Marks to promote a database server, users could be misled into thinking that the unauthorized person's products or services were created or endorsed by MySQL AB, or that those products or services met the quality control standards of MySQL AB.

This means we always have to walk a thin line here - on the one hand we of course want to foster and encourage the development of a rich ecosystem of software around the MySQL Server and our other products. On the other hand, we need to make sure that the distinction between MySQL AB's own products and third-party software is always clear and our trademarks are properly used. This could of course mean, that we sometimes get into legal disputes with other companies that violate the policies that we have laid-out. But this should not be misinterpreted as MySQL AB being on a witch-hunt, using our trademarks to go after other products or projects - this should always remain the last resort for enforcing our rights.

A trademark is a symbol of trust. If others attempt at unfairly profiting from the trust put in MySQL, we need to take action. We need to make sure that both our paying customers and our community users can trust the MySQL brand. In fact, US trademark law obliges trademark holders to chase down any infringements, otherwise this unauthorised use dilutes the trademark and can potentially be used to have the trademark be declared void.

This is a key reason why we have to be rather strict; we may otherwise wish to be more lenient in certain cases, but the law will not allow us that freedom. If we don't chase it, we'd lose the trademark altogether.

MySQL at the FrOSCon Conference

 On June 24th/25th, the Free and Open Source Software Conference (FrOSCon) will be held in Sankt Augustin, Germany. I have submitted two talks (in english), which both got accepted: "MySQL Administration: Backup and Security Strategies on Linux" and "The MySQL Business Model: Where and how we thrive". The sessions will take place on Saturday, but I will be around on Sunday, too. In addition to my sessions, there will be two more MySQL-related talks: "MySQL Cluster: an Introduction - A journey into High Availability" by Geert Vanderkelen (one of our MySQL Cluster Support experts) and "Pivot tables in MySQL 5 - creating cross-tabulation with MySQL 5 stored routines" by fellow PlanetMySQL blogger and MySQL Guilds Member Giuseppe Maxia. All in all the conference program sounds very interesting and offers a lot of diverse topics. See you there!

MySQL on Max OS X: An Ideal Development Combination

It's seems that Mac OS X has become the OS of choice for many people that wanted to get away from Windows or got too frustrated with Linux on the desktop. MySQL has been ported to OS X a long time ago and is even shipped as a component of OS X Server. The Apple Developer Connection now has a nice article about using and developing MySQL on OS X, including many quotes from Brian Aker.

Presenting mylvmbackup 0.1

With all the recent buzz on Planet MySQL about using LVM to perform "semi-hot" backups of MySQL on Linux, I remembered that we once created such a Perl script for a server project that we worked on in cooperation with a hardware vendor. As this particular backup method was also mentioned and recommended in my talk about MySQL backup and security on Linux and the script hasn't actually been publicly available so far, I offered to take over the ownership and release it under the GPL. The first tarball release (0.1) is now available from this web page (still work in progress), the files are available via SVN from here as well. Make sure to see the README and TODO files for the current status. A man page is included, too. I hope you will find it useful - feedback is very welcome!
tweetbackcheck