Hallo,
seit der Version 3.0.11 (Build 1408694433) wurde die MySQL Datenbank durch den "Fork" MariaDB ersetzt. Daher möchte ich euch hier gerne zeigen, wie ihr euch einen neuen TeamSpeak Server mit der MariaDB einrichtet.
Beachtet bitte, dass sich das Tutorial einzig und allein auf eine Neuinstallation bzw. Erst-Installation bezieht und nicht als Upgrade-Tutorial dient! Das Tutorial kann auch für die MySQL Datenbank genutzt werden. Ihr müsst hierzu dann nur immer "mariadb" durch "mysql" ersetzen.
Inhaltsverzeichnis
- Server vorbereiten
- Server einrichten/installieren
- Server Admin Rechte erhalten
Hinweis: Alles wird anhand eines Debian Systems gezeigt. Unter Umständen müsst ihr also die Befehle an eure Distribution anpassen!
Bevor wir anfangen, müssen wir erstmal den
-
Server vorbereiten
Wir benötigen erstmal die Server-Dateien. Hierfür laden wir sie einfach von TeamSpeak herunter und entpacken sie: TeamSpeak - Downloads (ab Version 3.0.11)
Wichtig: Hier gelten die selben Regeln wie bei jeder anderen Installation. Siehe auch hier: Teamspeak Server auf Linux installierenDanach müssen wir überprüfen, ob das Paket "libmariadb2" installiert ist, denn das ist die Bibliothek, die für die MariaDB Unterstützung gebraucht wird. Hierfür führen wir auf unserem Linux System einfach folgenden Befehl aus:
Code$ dpkg -s libmariadb2dpkg-query: package 'libmariadb2' is not installed and no information is availableUse dpkg --info (= dpkg-deb --info) to examine archive files,and dpkg --contents (= dpkg-deb --contents) to list their contents.
Wie man hier sieht, ist es zum Beispiel nicht installiert.Ebenso sieht man das, wenn man im Verzeichnis des TeamSpeak Servers folgenden Befehl ausführt:
Code$ ldd libts3db_mariadb.so linux-vdso.so.1 (0x00007fff43fff000) libmariadb.so.2 => not found libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f211d5dd000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f211d234000) /lib64/ld-linux-x86-64.so.2 (0x00007f211dbe0000)
Um es zu installieren, benötigt man den SID Repository von Debian. Oder man downloadet und installiert es manuell:
Codewget http://ftp.de.debian.org/debian/pool/main/m/mariadb-client-lgpl/libmariadb2_2.0.0-1_amd64.debdpkg -i libmariadb2_2.0.0-1_amd64.deb
Hier kann es vorkommen, dass man eine zu alte "libc6" Version installiert hat und dann hilft es nur, das System zu aktualisieren. Wenn es mit den aktuellen Repositorys und ohne den SID Repository bereits aktuell ist, dann müsst ihr den SID Repository noch inkludieren und das System aktualisieren. Danach könnt ihr - wie ich - das Paket einfach per Paketmanager installieren:
+++ UPDATE 2014-09-04 +++
Anstatts den SID Repository zu nutzen, kann auch folgende Repository genutzt werden: MariaDB - Setting up MariaDB Repositories
- MariaDB
Bei Debian Wheezy wäre das zum Beispiel folgender:Codedeb http://ftp.hosteurope.de/mirror/mariadb.org/repo/5.5/debian wheezy maindeb-src http://ftp.hosteurope.de/mirror/mariadb.org/repo/5.5/debian wheezy main
+++ UPDATE ENDE +++Und voila - es ist installiert/vorhanden:
Code$ ldd libts3db_mariadb.so linux-vdso.so.1 (0x00007fff4e16e000) libmariadb.so.2 => /usr/lib/x86_64-linux-gnu/libmariadb.so.2 (0x00007fa287de0000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa287adf000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa287736000) /lib64/ld-linux-x86-64.so.2 (0x00007fa28832f000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fa28751b000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa2872fe000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa2870f9000) libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fa286e99000) libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fa286aa3000)
So... Nachdem der Server prinzipiell funktionsfähig wäre, brauchen wir noch eine Datenbank. Hierfür installieren wir sie einfach mal:
Dann loggen wir uns als root-User in der Datenbank ein und erstellen eine neue leere Datenbank, sowie einen extra User dafür:
Passwort eingeben, was ihr während der Installation der Datenbank gewählt habt...
Die neue Datenbank heißt z.B. "teamspeak".CodeGRANT ALL PRIVILEGES ON teamspeak.* TO 'teamspeak'@'localhost' IDENTIFIED BY 'geheimesPasswort';
Beim letzten Befehl geben wir dem User "teamspeak" alle Rechte auf die Datenbank "teamspeak".Danach drücken wir noch die Tastenkombination "Strg" und "D", um aus der SQL-Shell raus zu gehen.
Okay, das war der Datenbank-Teil und somit eigentlich auch das schwierigste.
Im root unseres TeamSpeak Server-Verzeichnisses erstellen wir nun die Datei "ts3db_mariadb.ini", welche wie folgt aufgebaut ist:
Ebenso benötigen wir noch eine "ts3server.ini", welche wie folgt aufgebaut ist und im selben Verzeichnis liegt:
Codemachine_id=1default_voice_port=9987voice_ip=192.168.1.20licensepath=filetransfer_port=30033filetransfer_ip=0.0.0.0query_port=10011query_ip=192.168.1.20query_ip_whitelist=query_ip_whitelist.txtquery_ip_blacklist=query_ip_blacklist.txtdbplugin=ts3db_mariadbdbpluginparameter=ts3db_mariadb.inidbsqlpath=sql/dbsqlcreatepath=create_mariadb/dblogkeepdays=90logpath=logslogquerycommands=0dbclientkeepdays=30
Gut, jetzt haben wir die besten bzw. alle Bedingungen.
-
Server einrichten/installieren
Sobald alle notwendigen Vorbereitungen getroffen wurden, starten wir den TeamSpeak Server einfach in folgender Reihenfolge:
Wobei hier erstmal sehr viel Ausgabe-Text erscheint:Quote2014-08-31 02:21:20.380175|INFO |ServerLibPriv | | TeamSpeak 3 Server 3.0.11 (2014-08-22 08:00:33)
2014-08-31 02:21:20.380315|INFO |ServerLibPriv | | SystemInformation: Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u1 x86_64 Binary: 64bit
2014-08-31 02:21:20.380383|INFO |ServerLibPriv | | Using hardware aes
2014-08-31 02:21:20.381410|INFO |DatabaseQuery | | dbPlugin name: MariaDB plugin, (c)TeamSpeak Systems GmbH
2014-08-31 02:21:20.381483|INFO |DatabaseQuery | | dbPlugin version: 1
2014-08-31 02:21:21.159824|INFO |SQL | | db_CreateTables() tables created------------------------------------------------------------------
I M P O R T A N T
------------------------------------------------------------------
Server Query Admin Account created
loginname= "serveradmin", password= "ZODFd+4f"
------------------------------------------------------------------2014-08-31 02:21:21.377915|WARNING |Accounting | | Unable to find valid license key, falling back to limited functionality
2014-08-31 02:21:22.401903|INFO | | | Puzzle precompute time: 1015
2014-08-31 02:21:22.402037|INFO |FileManager | | listening on 0.0.0.0:30033
2014-08-31 02:21:22.406389|INFO |VirtualSvrMgr | | executing monthly interval
2014-08-31 02:21:22.406604|INFO |VirtualSvrMgr | | reset virtualserver traffic statistics
2014-08-31 02:21:22.560189|INFO |VirtualServer | 1| listening on 192.168.1.20:9987
2014-08-31 02:21:22.567021|INFO |VirtualServer | 1| client 'server'(id:0) added privilege key for servergroup 'Server Admin'(id:6)
2014-08-31 02:21:22.567050|WARNING |VirtualServer | 1| --------------------------------------------------------
2014-08-31 02:21:22.567069|WARNING |VirtualServer | 1| ServerAdmin privilege key created, please use the line below
2014-08-31 02:21:22.567087|WARNING |VirtualServer | 1| token=LdDrYFbLFQxBckC2baD0X2euXSF+WHRXeojLme4O
2014-08-31 02:21:22.567103|WARNING |VirtualServer | 1| --------------------------------------------------------------------------------------------------------------------------
I M P O R T A N T
------------------------------------------------------------------
ServerAdmin privilege key created, please use it to gain
serveradmin rights for your virtualserver. please
also check the doc/privilegekey_guide.txt for details.token=LdDrYFbLFQxBckC2baD0X2euXSF+WHRXeojLme4O
------------------------------------------------------------------2014-08-31 02:21:22.576894|INFO |CIDRManager | | updated query_ip_whitelist ips: 127.0.0.1,
2014-08-31 02:21:22.577130|INFO |Query | | listening on 192.168.1.20:9987
Hier muss man sich dann alles rot markierte unbedingt sichern/raus schreiben bzw. kopieren!Sobald man das hat, kann man mit Hilfe der Tastenkombination "Strg" und "C" das Minimal-Runscript beenden.
Als nächstes passen wir unsere "ts3server_startscript.sh" Datei so an, dass man den Parameter "inifile=ts3server.ini" nicht jedesmal angeben muss - vor allem, weil man es gerne mal vergessen kann. Hierfür bearbeiten wir die Datei in einem Text-Editor und ersetzen die folgende Zeile...
...durch diese...CodeCOMMANDLINE_PARAMETERS="inifile=ts3server.ini" #add any command line parameters you want to pass here
...und speichern, sowie schließen die Datei.Jetzt starten wir den TeamSpeak Server ganz normal mit der MariaDB:
Code$ ./ts3server_startscript.sh start Starting the TeamSpeak 3 server TeamSpeak 3 server started, for details please view the log file
Und siehe da, unsere Log-Datei sagt, es funktioniert:
Quote from logs/ts3server_2014-08-31__02_29_06.991662_0.log2014-08-31 02:29:06.991699|INFO |ServerLibPriv | | TeamSpeak 3 Server 3.0.11 (2014-08-22 08:00:33)
2014-08-31 02:29:06.991765|INFO |ServerLibPriv | | SystemInformation: Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u1 x86_64 Binary: 64bit
2014-08-31 02:29:06.991787|INFO |ServerLibPriv | | Using hardware aes
2014-08-31 02:29:06.992955|INFO |DatabaseQuery | | dbPlugin name: MariaDB plugin, (c)TeamSpeak Systems GmbH
2014-08-31 02:29:06.992983|INFO |DatabaseQuery | | dbPlugin version: 1
2014-08-31 02:29:06.996157|WARNING |Accounting | | Unable to find valid license key, falling back to limited functionality
2014-08-31 02:29:07.963338|INFO | | | Puzzle precompute time: 958
2014-08-31 02:29:07.963475|INFO |FileManager | | listening on 0.0.0.0:30033
2014-08-31 02:29:07.982137|INFO |CIDRManager | | updated query_ip_whitelist ips: 127.0.0.1,
2014-08-31 02:29:07.982265|INFO |Query | | listening on 192.168.1.20:9987 -
Server Admin Rechte erhalten
Jetzt müssen wir uns nur noch mit einem TeamSpeak Client auf unseren neuen Server verbinden und uns unsere Server Admin-Rechte holen. Hierfür geben wir einfach den Token, den wir uns vorhin raus geschrieben haben, im entsprechenden Feld ein:- Rechte
- Berechtigungsschlüssel
Fertig! Ich wünsche euch viel Spaß damit!
Für Fragen, Verbesserungsvorschläge und/oder Kommentare bin ich gerne offen: Schreibt's einfach in die Kommentare. Danke!