Teamspeak3 Server unter Gentoo/Funtoo Linux mit MySQL installieren

Hallo zusammen,

das Gentoo/Funtoo Paket ‚media-sound/teamspeak-server-bin‘ benötigt noch MySQL 5.1; dieses ist jedoch im ebuild nicht richtig aufgelöst, so das es nicht als Installationsbedingung aufgelistet wird. Installiert man das Paket, setzt in der Datei ‚/etc/teamspeak3-server/server.conf‘ ‚dbplugin=ts3db_mysql‘ (um die Einstellungen statt in einer SQLite-DB in einer MySQL-DB zu speichern) und versucht dann den TeamSpeak3 Server zu starten, bekommt man im Log folgende Meldung:

|INFO |ServerLibPriv | | TeamSpeak 3 Server 3.0.5 (2012-04-23 04:46:12)
|INFO |DatabaseQuery | | Please make sure you use the supplied ts3server_minimal_runscript.sh to run the server, or set LD_LIBRARY_PATH yourself
|CRITICAL|DatabaseQuery | | unable to load database plugin library „libts3db_mysql.so“, halting!

LD_LIBRARY_PATH ist aber (im Init-Script) schon auf das Verzeichnis gesetzt, in welchem die Datei libts3db_mysql.so liegt: /opt/teamspeak3-server/, also was soll die Meldung?
Das ganze wird klar, wenn man sich mit ldd einmal die  shared library dependencies der Datei /opt/teamspeak3-server/libts3db_mysql.so anzeigen lässt:

ldd /opt/teamspeak3-server/libts3db_mysql.so
linux-vdso.so.1 =>  (0x00007fff4efa4000)
libmysqlclient.so.15 => not found
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/libstdc++.so.6 (0x00007f17f2bc0000)
libm.so.6 => /lib/libm.so.6 (0x00007f17f293d000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f17f2727000)
libc.so.6 => /lib/libc.so.6 (0x00007f17f23ca000)
/lib64/ld-linux-x86-64.so.2 (0x00007f17f30fd000)

Es fehlt also die Datei libmysqlclient.so.15 ; diese ist jedoch leider nur in MySQL 5.1 enthalten. Nun hat man zwei Möglichkeiten:

  1. Man installiert und betreibt MySQL 5.1 . Dann löst sich das Problem ohne weiteres Zutun, jedoch finde ich es blöd sich von einem einzigen Programm eine veraltete MySQL Version aufzwingen zu lassen.
  2. Man besorgt sich die libmysqlclient.so.15.0.0 Datei von einem Build-Chain kompatiblen System (gleiche GCC Version, gleiche Arch, etc.). Das geht z.B. indem man erst MySQL in Version 5.1 installiertst, die Datei wegkopiert und wieder die MySQL Version, die man eigentlich haben möchte installiert.

Sofern man sich für Variante 2 entscheidet, kopiert man, während MySQL 5.1 installiert ist, die Datei /usr/lib64/mysql/libmysqlclient.so.15.0.0 nach /usr/local/lib/, erstellt einen Symlink von /usr/local/lib/libmysqlclient.so.15 auf /usr/local/lib/libmysqlclient.so.15.0.0 und installiert anschließend wieder die eigentliche Version von MySQL.

Hat man dieses alles erledigt, sollte sich der Teamspeak3 Server problemlos starten lassen.

Nachzulesen ist das ganze außerdem im Gentoo Forum. Auf die Idee gebracht hat mich der Blogeintrag von Alexander Winkler.


Leave a comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.