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.

Teilen per: TwitterEmail


Technische Neuerungen

So ein Servercrash hat auch seine guten Seiten: Man kann gleich alles, was einem als fehlkonfiguriert auffällt verbessern und erweitern :)

So hat der Server nun den eAccelerator installiert, durch den ich mir einen deutlich schnelleren Seitenaufbau erhoffe. Einige Applikationen sind definitiv schneller.

Das Script für die automatische Logfilegenerierung wurde ebenfalls etwas verbessert, so das nun (hoffentlich) bei einem Monatswechsel die Zugriffe zur Tages-/Monatsgrenze gezielter ausgewertet werden können.

Ausserdem haben wir nun einen TeamSpeak2 Server. Dieser läuft nicht immer, da ich keine Ahnung habe wie sicher das Teil ist. Das Startscript ist auf jeden Fall super schlecht und ich hab's erstmal editiert.

Ich möchte den TS Server zunächst gerne nur manuell bei Bedarf starten. Später können wir es gerne ändern.

Ansonsten ist nun soweit alles wieder verfügbar. Wem auffällt das was fehlt: Einfach bescheid sagen :)

Teilen per: TwitterEmail