Nachfolgend möchte ich die Installation eines Binär-Paketes der aktuellen Version 4.0.13 beschreiben. Im konkreten Fall steht auf dem Rechner Debian 3.0 zur Verfügung. Wir gehen zudem davon aus, dass bereits eine frühere Version von MySQL (z.B. 3.23.x bei Debian 3.0) aufgespielt worden ist.
Damit alle Linux-Distributionen
eine Chance erhalten, verwenden wir nicht die Debian-Packages, sondern
das Standard-Binär-Paket ab MySQL-Homepage.
Bevor wir die Installation der Version 4.0.13 vornehmen, sollten wir
einen gestarteten MySQL-Server mit
herunterfahren.
Debian-User sollten zudem die
MySQL-Debian-Packages mit 'dselect' auf 'Hold' setzen.
Nach dem Download müssen wir mit root-Rechten einige Dinge tun, für die wir besser gleich ein Skript schreiben:
mv mysql-standard-4.0.13-pc-linux-i686.tar.gz /usr/local cd /usr/local tar xvfz mysql-standard-4.0.13-pc-linux-i686.tar.gz ln -s mysql-standard-4.0.13-pc-linux-i686 mysql cd mysql chown -R root . chown -R mysql data chgrp -R mysql . cd /etc ln -s ./mysql/my.cnf my.cnf cd init.d
Ok, wir können das auch Zeile für Zeile eingeben, aber ein Shell-Skript ist trotzdem eleganter. Die Installation ist nun beinahe abgeschlossen. Im Verzeichnis '/usr/local/mysql' finden wir die Datei 'INSTALL-BINARY', welche eine Binär-Installation recht gut beschreibt, wenn auch aus dem Blickwinkel, dass zuvor noch kein MySQL installiert wurde. Die wichtigsten Zeilen der Datei hier zur Information:
shell> groupadd mysql shell> useradd -g mysql mysql shell> cd /usr/local shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf - shell> ln -s full-path-to-mysql-VERSION-OS mysql shell> cd mysql shell> scripts/mysql_install_db shell> chown -R root . shell> chown -R mysql data shell> chgrp -R mysql . shell> bin/mysqld_safe --user=mysql &
Wichtig für uns ist die Zeile 'scripts/mysql/install_db'. Mit dieser Zeile kann die Passwort- bzw. User-Datenbank 'mysql' komplett neu aufgebaut werden. Es ist zudem möglich, den gewünschten Installationspfad für die MySQL-Datenbanken mit anzugeben:
scripts/mysql_install_db --datadir=/mnt/archiv
Danach müssten noch die Rechte für das entsprechende Verzeichnis auf den User und die Gruppe 'mysql' gelegt werden. Und damit beim Start von MySQL der gewünschte Datenpfad (in unserem Beispiel '/mnt/archiv') auch gefunden wird, müssen wir in /etc/my.cnf den gewünschten Eintrag vornehmen:
[mysqld] datadir=/mnt/archiv
Da wir bei Debian 3.0 aber i.d.R. bereits eine MySQL-Installation vorfinden, möchte ich einen anderen Weg vorschlagen. Im Prinzip genügt es, die beiden Dateien '/etc/mysql/my.cnf' sowie '/etc/init.d/mysql' mit einigen Änderungen zu versehen, damit die Version 4.0.13 bereits beim Hochfahren des Systems sauber und automatisch gestartet werden kann. Zunächst ändern wir die Datei 'my.cnf' wie folgt:
# aus 'language = /usr/share/mysql/english' wird language = /usr/local/mysql/share/mysql/english
Achtung: Ohne den Link von
'/etc/mysql/my.cnf' nach '/etc/my.cnf' übernimmt MySQL 4.0.13 unter
Debian 3.0 keine Einstellungen. Wir erstellen deshalb einen Link:
ln -s /etc/mysql/my.cnf /etc/my.cnf
Weiter müssen wir die Datei '/etc/init.d/mysql' an einigen Stellen anpassen:
... #aus 'test -x /usr/sbin/mysqld || exit 0' wird test -x /usr/local/mysql/mysqld_safe || exit 0 ... # aus 'MYADMIN="/usr/bin/mysqladmin -u root ..."' wird MYADMIN="/usr/local/mysql/bin/mysqladmin -u root ..." ... # Start daemon # aus '/usr/sbin/mysqld ...' wird (in zwei Zeilen): cd /usr/local/mysql ./bin/mysqld_safe > /dev/null 2>&1 & ...
Überall, wo '...' steht, muss die Datei '/etc/init.d/mysql' gemäss der Vorlage belassen werden. Damit ist die Installation von MySQL 4.0.13 abgeschlossen; wir können nun den MySQL-Server ganz normal starten, genauso wie beim Starten von Debian 3.0 nun anstelle der Version 3.23.x die Version 4.0.13 hochgefahren wird.