Teamspeak 3 – Umstellen von SQLite auf MySQL

Das könnte Dich auch interessieren...

  • He du gescheiter Mensch 🙂

    Ich geb dir am besten mal die Logindaten für unseren TS3 Server lol ^^

  • Tino

    Super anleitung, war echt easy.
    Leider bekomm ich ne fehlermeldung wenn ich den server starten will -.-
    [quote]Logging started
    2009-12-28 17:23:14.354803|INFO |ServerLibPriv | | Server Version: 3.0.0-beta9 [Build: 9527]
    2009-12-28 17:23:14.433550|INFO |DatabaseQuery | | dbPlugin name: MySQL plugin, (c)TeamSpeak Systems GmbH
    2009-12-28 17:23:14.445298|INFO |DatabaseQuery | | dbPlugin version: 1
    2009-12-28 17:23:14.530730|ERROR |DatabaseQuery | | mysql_real_connect() failed with error: Unknown database ‘test’
    Segmentation fault
    [/quote]
    Kannst du mir helfen?

    • Es gibt einfach keine Datenbank test. Wenn Teamspeak 3 wirklich dort hinein installiert werden soll, solltest Du die Datenbank (z.B. in phpmyadmin, mysqldumper, etc.) anlegen und den TS3 neu starten.

      • Tino

        habs schon gemacht.
        das es keine db test gab wusst ich, aber war eben seltsam das er das machen wollte obwohl ich nirgends die db test deklariert habe.
        aber nu läufts 🙂

        • Jo, Hauptsache ist: es läuft und Du bist zufrieden. 😉

        • ^^ jo danke es geht alles im moment besser als erwartet

  • hi ,

    ich habe alles so gemacht wie beschrieben dennoch habe ich bei starten des servers zwar keine probleme doch wenn ich z.b. groups anlegen oder ändern möchte schmiert der ts server ab!

    meldung:
    2009-12-31 21:37:48.797279|CRITICAL|DatabaseQuery | | setSQLfromFile( file:sql/group_member_detail_get_by_groupid.sql) faid

    irgent eine idee oder liegt das am beta stadium?

    Danke schonmal
    Dante

    • es möchte aber noch dazu gesagt sein ich habe eine debian lenny root , mit einem windows ts3 server geht das 1a

    • entweder ist die Datei group_member_detail_get_by_groupid.sql nicht im Verzeichnis sql/ vorhanden oder der Benutzer, welcher den Server starten möchte, hat keine Berechtigungen auf diese Datei zuzugreifen. Bitte überprüfe mal die Berechtigungen der Dateien und Verzeichnisse.

      • hi,

        danke für die Antwort,
        ich habe noch lange rumgebastelt an der Geschichte,
        habe mir dann gedacht ich mache das einfach mal alles von vorne neu.
        Siehe da, nur läuft alles mit MySQL perfekt.

        ich bedake mich daher nochmal fürr die Antowrten^^^

        Gruß DANTE

        • Gern geschehen. Freut mich, dass es nun läuft. Viel Spaß noch mit TeamSpeak 3 🙂

  • Erwin

    Hi,
    ich hab jetzt lange probiert. Leider verbindet TS nur mit der db wenn der Benutzer “root” heisst und keine DB-Passwort festgelegt ist.
    Wenn ich wie oben beschrieben in der “ts3db_mysql.ini” andere Daten eintrage, z.B.:
    host=’localhost’
    port=’usually3306′
    username=’DBuser’
    password=’123456′
    database=’ts3′
    socket=
    (DB und User existieren und haben auch rechte), bekomme ich die Fehlermeldung:
    mysql_real_connect() failed with error: Access denied for user ‘root’@’localhost’ (using password: NO)
    Zum System: Debian 4, MYSQL 5 und TS-Server beta 12

    • Mit welchem Befehl startest Du genau den Server und falls Du eine ini-Datei bei Start benutzt, kopier mal bitte den Inhalt.

  • Erwin

    HI,
    ich starte den Server mit “./ts3server_linux_x86 inifile=ts3server.ini”
    der Inhalt der “ts3db_mysql.ini”
    [config]
    host=localhost
    port=3306
    username=xxxxxx
    password=xxxxxx
    database=ts3
    socket=
    Ich habe mir auch wie oben beschrieben die “ts3server.ini” erstellen lassen und geändert, die sieht so aus:
    machine_id=
    default_voice_port=9987
    voice_ip=192.168.178.34
    licensepath=
    filetransfer_port=30033
    filetransfer_ip=192.168.178.34
    query_port=10011
    query_ip=192.168.178.34
    dbplugin=ts3db_mysql
    dbpluginparameter=ts3db_mysql.ini
    dbsqlpath=sql/
    dbsqlcreatepath=create_mysql/
    logpath=logs
    logquerycommands=0

    • Schick mal bitte einen Screenshot der Benutzerrechte der SQL-Datenbank (z.B. über phpmyadmin) oder lade den Screen über Flickr, ImageShack oder ähnliches hoch.
      Hast Du mal versucht, von anderen Programmen, Webapplikationen, etc. auf die Datenbank mit den Credentials zuzugreifen?

    • @ Olli & Erwin:
      also an meiner Anleitung wird’s nicht liegen. Dafür funktioniert sie bei mir und anderen zu gut. 😉
      Testet mal bitte folgendes: Installiert den TeamSpeak 3 Server nochmal neu (ggf. in ein anderes Verzeichnis, damit der bestehende Server nicht beeinträchtig wird) und stellt auf MySQL um, _BEVOR_ Ihr ihn konfiguriert und startet. Nachdem der TeamSpeak 3 Server sauber unter MySQL mit den Standardsettings läuft, importiert Ihr die Einstellungen aus der SQLite Datenbank des ‘richtigen’ TeamSpeak 3 Servers. Natürlich vorher alle TS3-Prozesse stoppen bzw. killen, damit die Datenbank konsistent bleibt.

  • Also ich habe das selbe Problem.

    |DatabaseQuery | | mysql_real_connect() failed with error: Access denied for user ‘root’@’localhost’ (using password: NO)

    In der ts3_mysql.ini ist als Benutzer ts3serv eingetragen (benutzer gibts keine sorge ^^)

    Der Benutzer hat volle Rechte auf die Datenbank.

    Naja trotz benutzerangabe in der ini will er als root verbinden was ich etwas komisch finde.

    Ich könnte zwar jetzt mein root Daten in die ini eintragen allerdings weiger ich mich dies zutun 😉

    Wäre cool wenn wer ne idee hat woran es liegt das er versucht sich trotz User angabe als root an der db anzumelden

    Gruß Olli

    • Ok noch nen Hinweiß an dieser Stelle wie ich grade bemerkt habe , wenn ihr nach dem schema von mir beschrieben vorgeht also root blablabla dann legt er die Datenbank test an.

      Also ich glaub grad langsam das die obere beschreibung etwas bug ist weil ich hab das gefühl der fragt nicht einen wert aus der ts3db_mysql.ini ab.

  • Ok Problem auf unfreundlichem wege (in augen des Servers) gelöst …

    Wenn man im phpMyAdmin den Benutzer root auf localhost ohne passwort anlegt geht es. Wenn der MySQL Server richtig eingestellt ist und man phpMyAdmin in der Konfiguration verbietet eine Anmeldung OHNE Passwort durchzuführen kann man diese Variante vorübergehend in Betrieb nehmen.

    Jedoch möchte ich nicht das diese erklärung von mir wer für den Produktiven Einsatz nutzt da das betreiben des Root Nutzers ohne Passwort wenn auch nur auf localhost ein sicherheitsproblem darstellt 😉

  • So und wieder da 😉 Ich bin deine Anleitung nochmal durchgegangen aber er sagt mir immer das selbe
    2010-01-04 23:56:28.006361|ERROR |DatabaseQuery | | mysql_real_connect() failed with error: Access denied for user ‘root’@’localhost’ (using password: NO)

    Die Daten sehn wie folgt aus und da is auch alles richtig:

    [config]
    host=’localhost’
    port=’3306′
    username=’teamspeak’
    password=’***********’
    database=’ts3′
    socket=

    machine_id=
    default_voice_port=9987
    voice_ip=0.0.0.0
    licensepath=
    filetransfer_port=30033
    filetransfer_ip=0.0.0.0
    query_port=10011
    query_ip=0.0.0.0
    dbplugin=ts3db_mysql
    dbpluginparameter=ts3db_mysql.ini
    dbsqlpath=sql/
    dbsqlcreatepath=create_mysql/
    logpath=logs
    logquerycommands=0

    Als info fals es intressiert sind auf Beta12 am testen

    Gruß Olli

  • So Fehler ist gefunden und behoben 😉

    Fehler lag in deinem Tutorial ^^

    Du sagst in die Datei muss folgendes:

    [config]
    host=’SERVERNAMEorIP’
    port=’usually3306′
    username=’DBusername’
    password=’1234xyz’
    database=’TS3′
    socket=

    Richtig heißen muss es aber:

    [config]
    host=’SERVERNAMEorIP’
    port=’usually3306′
    username=’DBusername’
    password=’1234xyz’
    database=’TS3′
    socket=”

    Du hast einfach die ” vergessen ^^

    So mit dieser Info noch eine schöne Nacht 😉

    Gruß Olli

    • Danke für die Rückmeldung. Ich werde mir das nochmal anschauen und dann den Artikel ggf. anpassen. 🙂

  • Ich habe genau das gleiche Problem aber es läuft auch mit ‘ ‘ nicht…aus irgendeinem Grund läd er diese ini wohl nicht oder wieso sollte er mit root verbinden? oder liegt es an der mysql datenbank?

    • Problem ist gelöst 😉
      Lag vermutlich an einem ungewoltem Leerzeichen in seinen Daten.
      Nach dem übernehmen meiner ini´s und anpassung an seine Daten lief es.
      CLOSE

  • Also wie gesagt bei mir läufts nun ohne nenenswerte Probleme.
    Warum er bei dir nicht will is mir grad fraglich …
    Kannst mich ja mal Email oder ICQ kontaktieren dann könnte man mal zusammen schauen wo die / der Fehler hängen könnte.
    Mail: [email protected] (Kein MSN Messenger Account)
    ICQ: 576500594
    Gruß Olli

  • Ulf

    Hi
    Ich hatte das gleiche Problem. Die Lösung ist ganz einfach.

    Es ist ganz wichtig, nach der Letzten Zeile in der .ini Datei eine leere Zeile eizufügen. Ansonsten verarbeitet Teamspeak die Datei nicht.

    Gruß
    Ulf

  • mercilessXoX

    Hallo erst mal Danke das jemand sich mühe gibt das zu erklären so nun mein problem

    ich habe dieses auch schon öffters probiert in allen möglichen farianten nur bekomme immer die fehler meldung

    [email protected]:~/team3> ./ts3server_linux_amd64 inifile=ts3server.ini
    Logging started
    2010-01-18 12:17:43.023327|INFO |ServerLibPriv | | Server Version: 3.0.0-beta12 [Build: 9596]
    2010-01-18 12:17:43.023691|CRITICAL|DatabaseQuery | | unable to load database plugin library, halting!

    • Thessalos

      Das Problem hab ich auch, wenn ich versuche TS3 aus einem anderen Verzeichnis zu starten.
      Sobald ich in das TS3-Verzeichnis wechsel und dort ts3server starte, klappt es. Allerdings gefällt mir die Lösung nicht wirklich, da ich so chroot nicht mit eingebaut bekomme…

  • Ulf

    Hallo, hast du schon mal versucht, die Datenbank beim start zu löschen und neu anzulegen?

    Option
    ./ts3server_linux_x86 clear_database=1 dbplugin=ts3db_mysql inifile=ts3server.ini

  • TS3

    danke für die Anleitung

    • Chris

      Kleine änderung zur “beta17”
      es gibt jetzt ein “Start” Script zum TS3
      –> ts3server_minimal_runscript.sh <–
      in der besagten Datei muß jetzt die ts3server.ini hinterlegt werden.
      einfach
      COMMANDLINE_PARAMETERS=""
      um folgendes erweitern
      COMMANDLINE_PARAMETERS="inifile=ts3server.ini"

  • Kawasakai

    Danke für die Anleitung!

  • leguz

    sh-3.2$ 2010-02-13 12:32:49.487706|CRITICAL|DatabaseQuery | | unable to load database plugin library “libts3db_mysql.so”, halting!

    Fehler verusacht durch

    sh-3.2$ ldd libts3db_mysql.so
    linux-gate.so.1 => (0xf773b000)
    libmysqlclient.so.15 => not found
    libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf763b000)
    libm.so.6 => /lib32/libm.so.6 (0xf7617000)
    libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf760a000)
    libc.so.6 => /lib32/libc.so.6 (0xf74b7000)
    /lib/ld-linux.so.2 (0xf773c000)

    wenn einer rat hat her damit =)

  • Robin

    Hallo,

    ich hab die Anleitung so gemacht wie du es gesagt hast. Nur beim Uploaden bekomme ich immer wieder fehler. Wärst du so freundlich mir deine ICQ nummer zu schicken über eMail damit du mir helfen könntest?

    • Sry, aber ich bin kein Teamspeak-Supporter. Du kannst jedoch gerne Deine Frage per Reply stellen. Um was für einen Upload geht es überhaupt?

  • rickisani

    ich habe ein problem mit der datenbank, habe sie laut anleitung die sqldump.sql bearbeitet und bei hochladen via phpmyadmin kommt ein problem:

    “SQL-Befehl:

    CREATE TABLE tokens(
    token_id integer unsigned,
    token_key varchar( 50 ) NOT NULL ,
    token_type integer,
    token_id1 integer unsigned,
    token_id2 integer unsigned,
    token_created integer unsigned,
    token_description varchar( 255 ) ,
    token_customset varchar
    );

    MySQL meldet: Dokumentation
    #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘)’ at line 1 ”

    und die Zeile in der DB sieht so aus:
    “CREATE TABLE tokens ( server_id integer unsigned, token_key varchar(50) NOT NULL, token_type integer, token_id1 integer unsigned, token_id2 integer unsigned, token_created integer unsigned, token_description varchar(255), token_customset varchar);

    kan mir mal einer Helfen was da verkehrt ist.

    gruß Rickisani

    • rickisani

      es geht um den TS3 und wollte ihn auf MSQL umrüsten, habe die SQLdump erstellt und laut Anleitung umcodiert nur wen ich ihn via “myphpadmin” hochlade kommt die Fehlermeldung die ich im o.g.Tread erwähnt habe,
      wer kann helfen

    • LiberrY

      selbes Problem, wäre sehr nett wenn es sich mal jemand zur Brust nehmen könnte 😉

    • Richtiger Befehl:

      CREATE TABLE tokens(
      token_id integer unsigned,
      token_key varchar( 50 ) NOT NULL ,
      token_type integer,
      token_id1 integer unsigned,
      token_id2 integer unsigned,
      token_created integer unsigned,
      token_description varchar( 255 ) ,
      token_customset varchar( 255)
      );

      Die letzte Länge des Datensatzes hat gefehlt.

      lieben Gruß

      • Danke für den Hinweis. 🙂

  • Hi,

    ihr könnt die Datei mit den folgenden Kommandos automatisch kompatibel machen:

    sed -i “s/”/’/g” ts3_sqldump.sql
    sed -i “s/autoincrement/auto_increment/g” ts3_sqldump.sql
    sed -i “BEGIN TRANSACTION;/d” ts3_sqldump.sql
    sed -i “COMMIT;/d” ts3_sqldump.sql
    sed -i “sqlite_sequence/d” ts3_sqldump.sql

    Gruß,
    Jan

  • PS: Bei mir musste noch PRAGMA foreign_keys = OFF; entfernt werden, sonst hat MYSQL gemeckert unter Ubuntu 10.04.

  • Oh je, korrekt muss es also lauten:

    sed -i “s/”/’/g” ts3_sqldump.sql
    sed -i “s/autoincrement/auto_increment/g” ts3_sqldump.sql
    sed -i “/BEGIN TRANSACTION;/d” ts3_sqldump.sql
    sed -i “/COMMIT;/d” ts3_sqldump.sql
    sed -i “/sqlite_sequence/d” ts3_sqldump.sql

    und eventuell noch

    sed -i “/PRAGMA foreign_keys = OFF;/d” ts3_sqldump.sql

  • OK – irgendwie zerpflückt mir hier alles mit UTF… kannst du meine Beiträge irgendwie zusammenfügen?

    sed -i “/PRAGMA foreign_keys=OFF;/d” ts3_sqldump.sql

    ist richtig, irgendwie waren da Leerzeichen dazwischen geraten

  • Aber es funktioniert trotzdem nicht. Die SQL Syntax die dabei herauskommt, scheint nicht korrekt zu sein?

    SQL-Befehl:

    INSERT INTO ‘channel_properties’
    VALUES ( 1, 1, ‘channel_name’, ‘Default Channel’ ) ;

    MySQL meldet: Dokumentation
    #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ”channel_properties’ VALUES(1,1,’channel_name’,’Default Channel’)’ at line 1

  • counterdev

    Du hast die ” durch ‘ und nicht durch ` ersetzt..

  • Hallo Leute!

    Ich habe gesehen das zwei Posts vor mir schon jemand das Problem hatte. Ich habe alle Anweisungen aus dem Howto befolgt. jedoch erhalte ich immernoch folgende Fehlermeldung beim kopieren der DB per phpMyadmin

    #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘)’ at line 1

    Kann mir wer sagen wo da das Problem liegt?

    • Jo, und die Antwort dazu steht eigentlich genau ein Kommentar vor Deinem. 😉

  • Die habe ich ja auch gelesen. Allerdings habe ich die ” genau durch ` ersetzt. Naja habe jetzt weiter sqlite. Läuft ja auch so. Vielleicht wirds ja irgendwann mal einfacher das umzustellen.
    Trotzdem danke 🙂

  • burnjack

    Habe folgendes Problem:

    ERROR 1064 (42000) at line 1579: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘channel_topic’,”);
    INSERT INTO channel_properties VALUES(26,2633,’channel_des’ at line 1

    Ich meine alles korrekt konvertiert zu haben

    • burnjack

      problem gefunden… ein am ende eines channelnames in der zeile davor hat das ‘ escaped

  • Oli

    Ich möchte an der Stelle eine Kleinigkeit ergänzen, die mich beim Einrichten von Teamspeak 3 in Verbindung mit MySQL heute wirklich Nerven gekostet hat. 🙂

    Habe den Server nach dem o.g. HowTo eingerichtet. Allerdings funktioniert dieser NICHT uneingeschränkt mit der aktuellen Debian Distribution Squeeze.

    Mit Squeeze wird “libmysqlclient.so.16” mit ausgeliefert. “libmysqlclient.so.15” befindet sich bei der Minimal-Installation nicht auf dem System.
    Da “libts3db_mysql.so” aber “libmysqlclient.so.15” benötigt wir das Starten des Teamspeak-Servers mit der folgenden Fehlermeldung quitiert:

    |CRITICAL|DatabaseQuery | | unable to load database plugin library “libts3db_sqlite3.so”, halting!

    Diese Abhängigkeit kann allerdings behoben werden in dem man “libmysqlclient.so.15” nachinstalliert.
    Hierzu einfach folgende Schritte als root ausführen:

    wget http://ftp.nl.debian.org/debian/pool/main/m/mysql-dfsg-5.0/libmysqlclient15off_5.0.51a-24+lenny5_i386.deb
    dpkg -i libmysqlclient15off_5.0.51a-24+lenny5_i386.deb

    Danach kann der Teamspeak-Server über das mitgelieferte Start-Script gestartet werden.

    • Huhu, sehr interessanter Post. Ich liebe dieses Thema und warte auf weitere Posts zu dem Thema.

    • ScreamMaster

      FRAGE: Wie startet und Stoppt man denn noch den TS dann? Wie üblich über die Scripte von TeamSpeak per Putty oder wie?

      Ich verstehe das so das man mit der ini dann den TS ja startet, aber wie dann stoppen?

      Gruss

      • naja du kannst den ts stopen über das beiligende script

        “./ts3server_startscript.sh stop” z.b. oder killst einfach den prozess der über ps x aufgelistet wird.
        Bei letzteren ist anzumerken das ein pid file übrig bleiben kann die is bei bedarf zu löschen

        starten dann wieder über “start” am ende vom Script

        Gruss DanteXX

        • Ahso ja und ich benutze Putty ^^