For the most part, I love my Gentoo server; however, as with anything cool, there must always come one horrible drawback. This one appears to be upgrading MySQL. Right now I’m running MySQL 4.0.25 … the current version is 4.1.x. I’ve put off upgrading because generally upgrading something like a database requires upgrading everything that builds against the libraries it provides.
Before I go on, I’m going hit on a point that annoys the ever living crap out of me that deals with all source/binary Linux distributions alike. I can understand taking a couple of weeks or even a few months to move to the latest stable release of an important package like MySQL; however, to have the “Latest Stable” version of a package be the version that the package developer calls deprecated … that’s a little stupid. And this has happened on every version of Linux I’ve ever used (with various packages). I believe the issue even came up on Digg that what Linux really needed was a common installer environment. I agree, but I think they need more than that. I think first and foremost, a damned root folder structure should be selected and all versions adhere to it (which of course blows up the whole “I can do whatever i want with my Linux distro” mentality). But this is a remedial similarity for all systems that I think would make things much smoother for new distro development, etc. OK, side rant aside, back to the original rant.
So I’ve attempted to upgrade MySQL to 4.1. Gentoo gives this really nasty message about how upgrading is horrible and bad and all sorts of mean nasty ugly and isn’t supported unless you go do it how they say in the forum. So the way I look at it, there are 3 options:
- Upgrade the supported Gentoo way … possibility
- Upgrade the scary Gentoo way … not likely
- Upgrade the MySQL way … more likely than the previous
Well, initially, I took the supported Gentoo way … which was painful and best off unsuccessful. It blew up horribly. Trying do a restore of the backup yielded more than 4,000 separate errors as well as crippled the starting of mysqld (because some how the PID directory was wantonly destroyed). Well after 4 attempts of failure the Gentoo Way … I’ve decided to take matters into my own hands. I’m even composing this in Writely at the moment because everything on my site … email, blog, quote page … everything is down thanks to this piss poor documentation.
Heading on over the the MySQL site reveals their migration requires two servers … I don’t have two servers to play with and I’m not about to setup a new VM just to do an upgrade so that idea is scrapped. Since I’ve been told I have a blatant disregard for the safety of myself and others … bring on the unsupported method.
This is really stupid how this works too. Basically, one environmental variable is set and then portage will ignore everything it’s ever been told and just bulldoze over everything. Following the documentation for this method worked pretty well … except for one small problem. MySQL wouldn’t start when the process was over. That’s because the old package remove again kills the /var/run/mysqld directory. Recreating the directory, running mysql_fix_privilege_tables, and ignoring the random step about inserting the /tmp/new_pieces.sql resolved the issues. And of course the rebuilding of all the packages that depended on the 4.0 client (46 of them).
Needless to say, I’m still pissed. Why? BECAUSE IT’S ONLY VERSION 4.1!!! The stupid bastards at Gentoo haven’t upgraded to 5.0 yet so I can’t benefit from any portion of it. Oh, and one more thing. The Wildfire Jabber on hackerforhire.org was upgraded to version 2.6.0 for security reasons and will be upgraded again later this week to 2.6.1 to fix a performance issue and the morons at Wildfire didn’t provide a nice way to update the database … it was just conveniently exploded. So if you had a username on my server, you’ll need to re-register.