Beiträge von whfor

    Hi und auch sorry.


    ich hatte nun mittlerweile ein klärendes Gespräch mit dem Provider. Aus sicherheitsgründen ist es nicht möglich auf die MySQL datenbank des WebPaketes von ausserhalb - auch wenn es deren VPS ist - zuzugreifen. Dies war auch der Grund warum es Probleme gab.


    Das Verwenden von den TS3 mariadb plugins funktioniert gut und macht keinen unterschied ob am anderen ende mysql oder mariadb ist. Wichtig ist nur das es InnoDB ist.


    Schade finde ich nur das auch du dich nicht mehr gemeldet hast. Ich bin dennoch auf sqlite3 umgezogen und habe dies mit dem Pychokiller WEBInterface gemacht. Nur die Files nimmt er nicht mit.


    Gruß whfor

    Hallo,


    Hab nun versucht per mariadb-Client auf die MYSQL zu verbinden, doch bekomme nur das keine Verbindung hergestellt werden kann.


    Per Psychokiller-Webinterface kann ich ein Backup machen und wieder herstellen, hab damit aber alle Files nicht mehr dabei.


    Aus reinem Interesse und damit dieses Forum eineine gute Anlaufstelle bleibt, wäre es schön wenn man alle möglichen Varianten dokumentieren könnte. Darunter sqlite zu mariadb/mysql, mariadb/mysql zu sqlite, mysql als DB mit den neuen libs, Backup per Psychokiller und eventuell per query.


    Wenn jemand gute Anleitungen in Englisch kennt, würde ich sie auch gerne für hier ins deutsche übersetzen.

    Ich habe mir in den Kopf gesetzt mal wieder einen Serveranbieter zu Testen. Soweit ist auch alles super.


    Ich habe mir einen VServer und ein HostingPaket gemietet und möchte nun die Datenbank des HostingPaketes nutzen um nicht selber eine laufen zu lassen. Soll aus performance und backup Gründen so sein. Leider bietet mein Anbieter - wie fast alle - nur deine MySQL DB an. Darauf hin habe ich mal beobachtet was mein TS-Server denn wirklich mit der DB macht. Es ist echt lächerlich extra hierfür eine MariaDB zu installieren.


    Wie kann ich nun meine DB (atm auf MariaDB) in SQlite übertragen und den Server nur noch mit sqlite3 laufen lassen? Ich verwende das Webinterface von Psychokiller und habe dort schon die Möglichkeit ein Backup zu erstellen gesehen. Wie funktioniert diese und kann ich das nutzen um mein Vorhaben zu realisieren?


    Ich wäre euch echt dankbar.


    Gruß whfor

    Überall gibt es Anleitungen wie man von sqlite auf MariaDB migriert (auch hier).


    Eine Anleitung, wie man von MySQL zu MariaDB wechselt bleibt das Internet schuldig. Die einzige und offizielle befindet sich im Teamspeak3-Server. Wer jedoch genauer hinsieht, wird feststellen, dass die Engine nach dem Update nach wie vor MyISAM ist. Teamspeak3 verwendet jedoch bei der Neuinstallation InnoDB, die auch den Standard von MariaDB darstellt.
    Mich verwundert, dass sich keiner um diese Angelegenheit Gedanken macht. Dabei war im Update von 3.0.10 auf 3.0.11 dies einer der wesentlichen Punkte. Nun ich habe sie mir gemacht und versucht das zu ändern. Im Folgenden werde ich meine Schritte niederschreiben.


    Dies soll weniger eine Anleitung, als vielmehr eine Bitte um Korrektur oder Bestätigung sein.


    !!! Achtung dies ist eine Migration vom TS3-Server 3.0.10 zu 3.0.11.2 !!!


    Edit: Ich habe nun nochmal alle files im Teamspeak3-Server angeschaut - vor allem im sql-Ordner - und eine einfachere Methode gefunden.

    • Export:

      Code
      mysqldump –u teamspeak –p --no-create-info teamspeak_db > teamspeakdb.sql


      Diesen Befehl auf dem MySQL-Server ausführen.

    • Erstellen der neuen Datenbank:
      Teamspeak erstellt beim ersten Start eine Datenbank, natürlich startet dann auch der Server und es werden Channels und einiges mehr in die Datenbank geschrieben. Da wir nicht alles haben möchten, darf man nur das erstellen nutzen. Hier bedient sich TS3 ja auch nur der sql-Scripte und das können wir auch.

      Code
      mysql -u teamspeak -p teamspeak_db_neu < /opt/teamspeak/sql/create_mariadb/create_tables.sql


    • Eine Spalte löschen:
      nun kann man entweder über phpmyadmin die Spalte "token_from_client_id" aus der "tokens" Tabelle löschen oder mit folgenden Befehlen.

      Code
      $ mysql -u teamspeak -pMariaDB [(none)]> use teamspeak_db_neu;MariaDB [ts3db]> ALTER TABLE `tokens` DROP `token_from_client_id`;MariaDB [ts3db]> quit;


    • Import:
      nun muss nur noch der Import gemacht werden.

      Code
      mysql -u teamspeak -p teamspeak_db_neu < teamspeakdb.sql


    • Aufräumen und starten:
      Damit man nicht nur alle Rechte und Channels , sondern auch alle Files, wieder hat, müssen diese natürlich noch in den Files-Ordner kopiert werden (z.B. /opt/teamspeak/files/ ). Ich lösche auch noch alle, beim ersten Start erstellten, Logs. Dann kann auch der Server gestartet werden.

    Ich habe den so migrierten Server einige Zeit bereits am Laufen. Fehler habe ich bisher noch keine bemerkt. Ich hoffe das hilft euch.


    An alle mysql/mairadb Gurus, Ich würde mich über ein Feedback und konstruktive Kritik freuen.

    Noch eins? JA!


    Lest es euch durch und entscheidet ob es euch hilft oder ich nur unnötig was ins Forum geschrieben habe. Mein Ziel ist es hier ein Beitrag zu finden, nach dem ich immer wieder meinen TS3Server installieren kann.

    • Vorraussetzungen


      Ich verwende ein allen meinen Setups Ubuntu (momentan 14.04.02). Für dieses Tutorial habe ich aber auch Debian 7.8 getestet und es genau so hinbekommen.


      :: MariaDB ::
      Bitte verzeiht mir, das ich hier nicht auf die fachgerechte Installation von MariaDB eingehe. Dafür habe ich leider keine Zeit und finde andere Tutorial hierfür so wieso besser. Dennoch möchte ich euch natürlich nicht im Regen stehen lassen und gebe euch natürlich den Link von dem Tutorial, das ich auch für mich selber nutze.
      MariaDB - Setting up MariaDB Repositories
      - MariaDB


      :thumbup:


      optional:


      Nginx (als Webserver für das admintool von Psychokiller)
      PHP5 (incl. php5-fpm)
      phpmyadmin (Ich verwende hiefür php5-mysqlnd und php5-mcrypt)


    • Vorbereitung


      wir legen nun natürlich eine Datenbank an und geben anschließend einem DB-User auch die Rechte:

      Code
      mysql -u root -p


      Code
      CREATE DATABASE teamspeak;GRANT ALL PRIVILEGES ON teamspeak.* TO teamspeak@localhost IDENTIFIED BY 'geheimesPasswort';


      Für die Sicherheit aber auch zur besseren Verwaltung legen wir nun noch die passende Gruppe (vielleicht unnötig) und User an:

      Code
      sudo groupadd -r teamspeaksudo useradd -r -m -d /opt/teamspeak -g teamspeak teamspeak


      Damit Ihr auch wisst was ihr da gemacht habt die Options:
      -r creates a system user/group
      -m creates a home-dir
      -d defines the home-dir, else it would be /home/<user>
      -g defines main group


      Auf zum nächsten Punkt


    • Installation


      Trotz des nun erstellten Home-Verzeichnises empfehle ich Downloads von anderen Sites immer mit eurem User zu machen. Wir laden mal Teamspeak-Server für Linux runter (ich verwende amd64, bitte bei bedarf ändern)


      Code
      cd ~wget http://dl.4players.de/ts/releases/3.0.11.2/teamspeak3-server_linux-amd64-3.0.11.2.tar.gztar -xzf team #TAB-Key


      Kopiert nun die Dateien ins TS-Home-Verzeichnis. Natürlich als teamspeak!!


      Code
      sudo -u teamspeak cp -r ~/team #TAB-Key# /* /opt/teamspeak/


      Nun noch 1 wichtige Sache damit die Datenbank auch funktioniert und wir keine unerklärlichen Abstürze erhalten. (Infos hierzu hier entnehmen)

      Code
      sudo ln -s /opt/teamspeak3-server/redist/libmariadb.so.2 /opt/teamspeak3-server/libmariadb.so.2


    • Konfiguration


      Um Teamspeak die Möglichkeit zu geben sein Daten in der Datenbank zu hinterlegen, muss es die Zugangsdaten bekommen und wissen wo sich die DB befindet. Hier schreiben wir eine ini-File mit dem Namen ts3db_mariadb.ini . Ich verwende nano, da es auch Copy&Pase über ssh unterstützt.


      Code
      sudo -u teamspeak nano /opt/teamspeak/ts3db_mariadb.ini


      Inhalt ist

      Code
      [config]host=127.0.0.1port=3306username=teamspeakpassword=geheimesPasswortdatabase=teamspeak


      Teamspeak braucht dann noch die eigentliche Konfigurationsdatei. Diese heißt ts3server.ini (sie kann im Prinzip jeden beliebigen Namen haben)

      Code
      sudo -u teamspeak nano /opt/teamspeak/ts3server.ini


      Inhalt ist

      Code
      machine_id=default_voice_port=9987voice_ip=0.0.0.0licensepath=filetransfer_port=30033filetransfer_ip=0.0.0.0query_port=10011query_ip=127.0.0.1query_ip_whitelist=query_ip_whitelist.txtquery_ip_blacklist=query_ip_blacklist.txtdbplugin=ts3db_mariadbdbpluginparameter=ts3db_mariadb.inidbsqlpath=sql/dbsqlcreatepath=create_mariadb/dbconnections=5dbclientkeepdays=30dblogkeepdays=90logpath=logslogappend=1logquerycommands=0


      Fertig!!


      Lest umbedingt den nächsten Abschnitt!!


    • Autostart
      Nun kommt der für mich wichtigste Punkt. In den meisten Tutorials wird natürlich von den berühmten init-Scripten geschrieben und davon gibt es mehr als genug - finde ich. Ich hab nach einer Lösung gesucht die einfach, verständlich und dennoch effektiv arbeitet. Dabei muss ich erwähnen das ich nun ca. seit 2 Jahren danach suche und es eigentlich auch schon so lange verwende aber einfach völlig übersehen habe. Gespannt? :D


      ssss Supervisord ddddd


      ja das ist das Zauberwort! Ihn zu installieren und zu betreiben ist einfacher als Pizza aufbacken. Hier alle was ihr tun müsst.


      Code
      sudo apt-get install supervisor


      What??? 8|


      Ja das ist alles. Nun noch die passenden conf's speichern und los geht's. Hier meine:

      Code
      [program:TS3Server]command=/opt/teamspeak/ts3server_linux_amd64 inifile=ts3server.inidirectory=/opt/teamspeakenvironment=LD_LIBRARY_PATH=/opt/teamspeak:user=teamspeakautostart=trueautorestart=truestderr_logfile=/opt/teamspeak/logs/error.logstdout_logfile=/opt/teamspeak/logs/out.log


      Code
      [program:TS3_DNS]command=/opt/teamspeak/tsdns/tsdnsserver_linux_amd64directory=/opt/teamspeak/tsdnsenvironment=LD_LIBRARY_PATH=/opt/teamspeak/tsdns:user=teamspeakautostart=trueautorestart=truestderr_logfile=/opt/teamspeak/logs/tsdns_error.logstdout_logfile=/opt/teamspeak/logs/tsdns_out.log


      OK. Ich hab gelogen. Das ist nicht alles. Ihr müsst dies conf's in das conf.d-Verzeichnis /etc/supervisor/conf.d/ z.B. als TS3Server.conf und TSDNS.conf schreiben. Und zum starten müsst ihr natürlich auch noch ein Befehl ausführen.


      Code
      sudo supervisorctl reread
      supervisorctl update


      Doch nun sollten die Server laufen (TSDNS.conf nur erstellen wenn ihr TSDNS auch nutzt, sonst gibt es Fehler)


      Was Supervisord für einen Vorteil hat? Es startet automatisch, es startet nach einem Abbruch, es schreibt alles was auf die Konsole geleitet wird in das Log-File (hier out.log). Kann euer init-Script das auch?


      Infos zu supervisord hier

    • [Platzhalter für Migration]

    Solved vorübergehend


    Es sieht so aus als ob ich es geschafft habe.


    Leider hat die Lösung direkte Auswirkungen auf deine Tutorials Sebbo.


    Im Tutorial "TeamSpeak Server Installation mit der MySQL/MariaDB Datenbank" schreibst du, unter dem Punkt "1. Server vorbereiten",

    Zitat

    Danach 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.


    Diese ist in der Sache zwar richtig, führt jedoch bei den KVM-Servern zu Fehlern. Richtig wäre hier folgender Beitrag

    Zitat

    Symlink library libmariadb.so.2 from /redist folder to TeamSpeak3 server directory.


    Code
    sudo ln -s /opt/teamspeak3-server/redist/libmariadb.so.2 /opt/teamspeak3-server/libmariadb.so.2


    from: http://terminal28.com/how-to-i…rver-linux-debian-ubuntu/


    Man sollte sich auch nicht von dem "not found" stören lassen. Dies liegt nur am Script das zwar eine Suche startet aber nicht im TS-Verzeichnis sucht.


    Bei mir läuft der Server zum ersten mal länger als 30min (mehr als 3 Std) ohne eine einzige Fehlermeldung.


    Sebbo: dürfte ich dein Tutorial als Vorlage verwende um meins hier im Forum zu posten? Du kannst dann natürlich gerne dieses Löschen falls es dir nicht gefällt.

    Danke für die Antwort.


    Nun habe ich den Anbieter gewechselt und versucht es erneut zu installieren. Völlig unerwartet passiert das dort aber auch.
    Ich weis nicht ob ich das schon erwähnt habe, aber der Fehler tritt nur bei der Mariadb auf. Wenn ich sqlite3 verwende läuft es gut. Diesmal habe ich supervisor fürs starten verwendet (Tutorial folgt sobald alles läuft) und konnte so sehen das er in unregelmäßigen Abständen abbricht. Supervisor startet dann den ts3Server neu.


    Meine Vermuttung ist nun das etwas mit der Anbindung bzw dem Kontakt mit der DB nicht stimmt.


    Zuerst mal der Kontakt. Gibt es in Mariadb einen session timer? Kann ich den verändern?


    Nun die Anbindung. Kann es an der libmariadb2 und ihren Abhängigkeiten und dem Kernel des vServers (KVM) liegen?


    Ich hab nun ubuntu 14.04.02 LTS, Mariadb 10, NGINX und php5-fpm.


    P.S. auf einer Virtualbox mit gleicher Software und gleichen Parametern (RAM Menge, CPU Menge und Art) gibt es keine Fehler.

    Ich habe zuletzt - aus Verzweiflung - eine komplett neue Database erstellt und TS3 damit verbinden lassen (samt Neuerstellung aller Tabellen). Momentan habe ich die Vermutung das es bei mir ein Fehler durch die MariaDB 10 ist.


    Wäre schön wenn mir das jemand dementieren könnte. Derweil installiere ich einfach mal das System neu :P Nur zum Spaß nicht zur Übung. Dann werde ich auch die Logs hier posten.


    Sebbo dennoch großen Dank für die Antworten.


    Edit: so fertig und leider schlechtes Ergebniss.


    hier die Log:

    Nun bezüglich netcup wäre ich nun nicht so offen. Die Antwort vom Support auf meine Bitte mir behilflich zu sein war sehr strikt.


    Aber nun zu meinem Fehler. Wenn ich sqlite verwende läuft alles gut. Stelle ich auf Maria um dauert es max 24min (1440sec) bis die DB nicht mehr vom TS erreicht wird.
    Wie ihr schon lesen könnt, konnte ich das Problem etwas eingrenzen.


    Cron führt eine gewisse maxlife... aus /usr/lib/php5/ aus und dann kann TS die DB nicht mehr erreichen.


    Sagen euch diese Werte was und könntet ihr mir einen tip geben?


    Gruß WhFor


    Edit: hab vergessen zu erwähnen das ich nun das Debian image installiert habe und es garkein dbus hat bzw. keinen Unterschied macht.

    Hi,


    hab mir diesen Beitrag durchgelesen und finde es super, dass du dein Wissen so teils.


    Da ich mich jedoch nicht so gut mit iptables auskenne und irgendwie kompliziert finde, würde ich gerne wissen ob man dies nicht auch mit ufw realisieren könnte.


    Dies soll auch ein Bitte sein, uns (all den da draußen die unsicher ihren TS3 betreiben und mir) eine Anleitung an die Hand zu geben die das Leben schöner macht. :D

    Sorry das ich erst jetzt antworte


    hier die Ausgaben:

    Code
    $ dpkg -l | grep -i dbusii  dbus                                1.6.18-0ubuntu4.3                     amd64        simple interprocess messaging system (daemon and utilities)ii  libdbus-1-3:amd64                   1.6.18-0ubuntu4.3                     amd64        simple interprocess messaging system (library)ii  libdbus-glib-1-2:amd64              0.100.2-1                             amd64        simple interprocess messaging system (GLib-based shared library)ii  libnih-dbus1:amd64                  1.0.3-4ubuntu25                       amd64        NIH D-Bus Bindings Libraryii  libqt4-dbus:amd64                   4:4.8.5+git192-g085f851+dfsg-2ubuntu4 amd64        Qt 4 D-Bus moduleii  libqtdbus4:amd64                    4:4.8.5+git192-g085f851+dfsg-2ubuntu4 amd64        Qt 4 D-Bus module libraryii  python3-dbus                        1.2.0-2build2                         amd64        simple interprocess messaging system (Python 3 interface)ii  qdbus                               4:4.8.5+git192-g085f851+dfsg-2ubuntu4 amd64        Qt 4 D-Bus tool


    Code
    $ cat /etc/debian_version
    jessie/sid


    Ich habe Unbuntu 14.04 LTS amd64 auf einem vServer von netcup installier. Partitionierung fand mit lvm statt.


    Teil zwei

    hier die _opt_teamspeak_ts3server_linux_amd64.999.crash



    Teil eins

    Hallo,


    ich hab nun nach den Anleitungen von hier meinen TS3 Server mit NPL von einem vServer zum anderen umgezogen.


    Soweit hat auch alles geklappt. Doch der ts3-prozess crashed und muss neu gestartet werden.


    Das einzige log das diesen Absturz registriert ist apport.log. hier der Auszug:


    <code>ERROR: apport (pid 11632) Fri Apr 10 13:29:48 2015: called for pid 11572, signal 6, core limit 0
    ERROR: apport (pid 11632) Fri Apr 10 13:29:48 2015: executable: /opt/teamspeak/ts3server_linux_amd64 (command line "./ts3server_linux_amd64 inifile=ts3server.ini")
    ERROR: apport (pid 11632) Fri Apr 10 13:29:48 2015: is_closing_session(): no DBUS_SESSION_BUS_ADDRESS in environment
    ERROR: apport (pid 11632) Fri Apr 10 13:29:52 2015: wrote report /var/crash/_opt_teamspeak_ts3server_linux_amd64.999.crash</code>


    Ich hoffe ihr könnt mir helfen.