Blue Gecko works with clients who run many different operating systems. Our preference generally is RedHat Enterprise Linux or CentOS, but we have customers who range far and wide from there including Solaris, Windows, SuSE, and (more and more) Debian and Ubuntu.
As we’ve become more familiar with Debian and Ubuntu we have found that those customers who use the MySQL packages that are distributed with these OSs have a few quirks to be aware of.
Baron Schwartz posted a long description of one of these, the challenge with /etc/mysql/debian-start at the MySQL Performance Blog. In the short version, if this script isn’t disabled, it will run a mysqlcheck each time /etc/init.d/mysql start is invoked. This has been changed in later versions of Debian, but legacy systems may still have this issue. We’ve run into it with new clients (bringing us older systems) as recently as this week.
Another gotcha that we’ve run into is the default behavior of putting an include at the bottom of the /etc/my.cnf. Since we often come into machines that have been set up by someone else, we start with an audit of the database. When we went to make some changes to /etc/my.cnf to tune some variables there was some initial confusion since those configuration changes had been made in an included file. Easily sorted out, but momentarily annoying none the less.
And lastly, Debian’s MySQL is configured to send all the MySQL logs to syslog. Now, I’m generally in favor of using the syslog infrastructure for logging where possible, but it is definitely non-standard for MySQL. On the positive side, it does add the benefit of rotating the error logs for you.
I’d love to hear about other non-standard customizations in the MySQL packages for Debian and Ubuntu and other distributions. Drop them in the comments. To simplify management, we generally use the packages from MySQL in order to have the most recent GA version as well as a standard filesystem layout.