EDIT: If you want to upgrade a 5.0.x installation on Etch, forget this howto and use the packages provided by http://www.backports.org which is the official way to do it. You may still use this howto as an inspiration if you plan to install Mysql 5.1.x, until it get backported ;) (although I doubt it will ever be).
Anyway, for the lazy:
- Add this line to
deb http://www.backports.org/debian etch-backports main contrib non-free
- Then execute these commands:
apt-get -t etch-backports install mysql-server
THIS IS DEPRECATED!!If you install a Debian 4.0 (Etch) system and you do an
apt-get install mysql-serveryou will install an old 5.0.32 version. So, since we know there are a couple of critical bugs fixed in more recient versions (solving for example scalability issues on SMP machines), you may want to install a more recent version from the official Mysql Community web site. This link will let you download a dinamically-linked RPM which needs glibc 2.3, which is the version we have in our Etch system.After the download, install the Alien tool
apt-get install alienand then magically convert the RPM to a DEB package with
alien --scripts MySQL-server-5.0.*.glibc23.i386.rpmand in a couple of minutes you will have a new mysql-server_5.0.45-1_i386.deb (for example, the number depends on the Mysql version you have downloaded and the architecture you are using).Now, let’s install the old, default Debian mysql version, with
that will install mysqld in the Debian way and create all the things it needs.
apt-get install mysql-server
Before proceding furthermore, we have to remove the mysql-server-5.0 package with
apt-get remove mysql-server-5.0
This is needed because otherwise when upgrades to this package appear in the official Debian repository, you will be forced to install them (if you’re not using pinning) even if you don’t need them. Why? Because the mysql-server package that we’re replacing in this howto is only a meta-package for mysql-server-5.0 which is in Debian the real package. I’m working on a better solution, I’ll keep you informed.
Now, with the deb we have just generated with Alien, we can update the Debian installation, since they both provide the same package (mysql-server)
Install it with:
dpkg -i --force-overwrite mysql-server_*i386.deb
the –force-overwrite is needed because there are files in conflict between the Debian meta-package mysql-server-5.0 and the deb we are installing right now. This could be solved modifying the manifesto of our debian package telling the system that our deb provides a mysql-server-5.0 installation or, since the original RPM is LSB-compliant, with this force-overwrite option.
Now, let’s stop the mysql daemon just a moment
create this symlink (because the RPM init script will look for /etc/my.cnf)
ln -s /etc/mysql/my.cnf /etc/my.cnf
and then let’s start again Mysql
and that’s all, it should work (at least it worked for me).