TeamSpeak 2 und MySQL

RadarHH

New Member
Hallo Leute,

vieleicht könnt ihr mir weiterhelfen. Ich habe folgendes Problem:

Ich möchte den TeamSpeak-Server gerne mit einer MySQL-Datenbank laufen lassen. Soweit so gut, dafür muss ich lediglich (wie ich verstanden habe) eine DB erstellen und in der server.ini von TS2 folgendes hinzufügen:

[DBEXPRESS]
sqldir=mysql_sql/
Drivername=mysql
Database=datenbankname
Hostname=localhost
User_name=Benutzername
Password=Password
GetDriverFunc=getSQLDriverMYSQL
VendorLib=/usr/lib/libmysqlclient_r.so.10.0.0
LibraryName=./libsqlmy.so
Active=1

Ich habe jetzt gelesen, dass TS2 nur mit libmysqlclient_r.so.10.0.0 läuft, ich habe aber 'werkseitig' libmysqlclient_r.so.14.0.0 auf dem Server installiert. Irgendwo ist dann in einem TS2-Forum der Tipp gegeben worden, dass lediglich die libmysqlclient_r.so.10.0.0 in das entsprechende Verzeichnis kopiert werden könnte, dann würde TS2 auch mit einer MySQL-Datenbank laufe. Geht aber auch nicht...

Ich möchte TS2 gerne in Zusammenhang mit einem Forum betreiben und die Userdaten dann entsprechend über die Datenbank verwalten (ist für ein vB-Forum).

Ich habe einen vServer bei Strato gemietet, Daten: Linux 2.0.20.1, Apache v2.0.53, PHP 4.3.10 und MySQL 4.1.10a.

Die Fehlermeldung in server.log von TS2 sagt mir, dass der Benutzername/das Passwort nicht korrekt sind (was auch der 'normale' Fehler bei Benutzen von libmysqlclient_r.so.14.0.0 sein soll). Mit libmysqlclient_r.so.10.0.0 ist es das gleiche Ergebnis, die Daten für die DB sind aber 100% korrekt, gasnz bestimmt.

Database initialization error: EDatabaseError.dbExpress Error: Invalid Username/Password
unable to open database

Habt ihr eine Idee, was ich noch machen kann? TS2 läuft ja eigentständig, dass ist nicht das Problem. Nur benötige ich auf jeden Fall die DB-Anbindung für die Implementation in die Forum-Software...
 
MySQL 4.1.10a.

Hm da gabs irgend nen Problem mit der MySQL Version hab das aber nicht mehr im Kopf!

Auszug aus meiner ini
[DBEXPRESS]
sqldir=mysql_sql/
Drivername=mysql
Database=teamspeak_1
Hostname=localhost
User_name=teamspeak_1
Password=blablabla ajaj !!! xD
CetDriverFunc=getSQLDriverMYSQL
VendorLib=./libmysqlclient_r.so.10.0.0
LibraryName=./libsqlmy.so
Active=1

und nun noch versuchs mal mit der hier http://nobody24.de/daniel/libmysqlclient_r.so.10.0.0

Viel glück
Daniel

Edit: Mit 4.0.25 gings bei uns nur! Höhere versionen sind inkompatibel. Zumindest bei mir.
 
Last edited by a moderator:
Ich werd's nachher mal ausprobieren und Dir dann bescheid geben, aber schon mal vielen Dank für Deine Antwort.
 
Mit MySQL 4.1.10a?
Im Forum von TeamSpeak schauen ich glaube das liegt an der SQL version dann. Ges geht nicht mit allen 4er Versionen und mit keiner 5er und keier 3er das ist weng komisch aber naja.

Wie gesagt 4.0.25 oder so geht viel mehr nicht.
 
So, ich hab's hinbekommen, nachdem ich mich durch etliche Foren und Beiträge gekämpft habe. Hier die kurze Beschreibung, wie ich es trotz neuer MySQL-Version mit einer MySQL-DB zum laufen bekommen habe:

Zuerst einmal muss die MySQL-Datenbank erstellt werden, welche für
TeamSpeak genutzt werden soll und dazu entsprechend einen Benutzer für die Datenbank einrichten. Unter der DB-Shell (phpMyAdmin) folgenden Befehl ausgeführen:
set password for 'datenbankbenutzername'@'server' = old_pasword ('passwort');
Server ist in den meisten Fällen localhost.

Eines der Probleme von TeamSpeak und neueren MySQL-Versionen ist es, dass das Passwort der DB nicht erkannt wird, da es hier wohl Probleme mit dem hash der PW gibt. Eine weitere Möglichkeit wäre, in der my.conf auf dem Server die Option old-password einzufügen, aber die querry in die DB zu schicken ist einfacher und gezielter und betrifft auch nicht das gesamte System.

Danach die hier anhängenden libs (libmysqlclient.so.10.0.0 und libmysqlclient_.so.10.0.0) auf dem Server in /usr/lib/ hineinkopieren, wie es bereits vorher hier erwähnt wurde.

Jetzt den TeamSpeak-Server wie gewohnt auf den Server hochladen (mit wget oder FTP) und entpacken, noch nicht starten.

Dann im Verzeichnis tss2_rc2 die Datei server.ini mit folgendem Inhalt (ggfs. die Pfade anpassen) erstellen:
[DBEXPRESS]
sqldir=mysql_sql/
Drivername=mysql
Database=datenbankname
Hostname=localhost
User_name=Benutzername
Password=Password
GetDriverFunc=getSQLDriverMYSQL
VendorLib=/usr/lib/libmysqlclient_r.so.10.0.0
LibraryName=./libsqlmy.so
Active=1
Im Unterverzeichnis mysql_sql ist die Datei read_servers.sql zu finden (Achtung, es gibt auch noch read_server.sql, diese so lassen wie sie ist). Diese öffnen und die Zeile
select * from ts2_servers;
in
select * from ts2_servers WHERE i_server_id > 0;
ändern.

Jetzt den TeamSpeak-Server starten und alles sollte wie gewünscht funktionieren.

Manchmal kann es passieren, dass anstatt localhost die IP-Adresse 127.0.0.1 angegeben werden muss, da TeamSpeak mit localhost in einigen Fällen Probleme hat.

Ich hoffe, ich konnte Euch noch etwas weiterhelfen!

Vossi
 

Attachments

Hallo RadarHH,

danke dir für die ausführliche Antwort.

Gibt es leider immer seltener, dass sich ein User nochmal die Mühe macht und eine Lösung für die anderen postet nachdem er sein Problem gelöst hat.

Also danke ;)
und weiter so!

Lieben Gruß
Free
 
Dafür ist ein Forum doch eigentlich da.

Und wenn ich hier schon ein Problem darstelle und um Hilfe frage, dann ist es das mindesteste, dass ich auch die Lösung einstelle, wenn ich's dann hinbekommen habe. Der nächste kann davon nur profitieren und bei anderen Problemen vieleicht die nächste Hilfestellung beisteuern.

Das mit TeamSpeak und MySQL hat mir echt lange Nächte bereitet, das möchte ich anderen gerne ersparen.
 
Fehler o.o .....

Also der Guide hier hat mir soweit gut weitergeholfen!! danke schonmal dafür

nun kommen meine probleme ich benutze Debian3.1 64bit

ich habe im mysql eine DB angelegt für die server instanz mit dazugehörigen benutzer!!

nun schreib die server.log folgenden fehler
Code:
17-02-07 16:18:29,ERROR,All,SQL,	Database initialization error: EDatabaseError.dbExpress Error: Invalid Username/Password
17-02-07 16:18:29,ERROR,All,SERVER,	Start_Server: unable to open database

Jedoch steht in der Server.ini Definitiv das richtige pw ich habe es mehrmals überprüft

da ich ja Debian habe müssen bei mir die zeilen in der server.ini wie folgt aussehen!

Code:
[DBEXPRESS]
sqldir=mysql_sql
Drivername=mysql
Database=teamspeak
Hostname=127.0.0.1
User_name=teamspeak
Password=******
GetDriverFunc=getSQLDriverMYSQL
VendorLib=/usr/lib/libmysqlclient_r.so.10.0.0
LibraryName=/home/sponsor/2000xxx/libsqlmy.so
Active=1


Damit er die pfade richtig anwählt!

Als ich den fehler aus der log entnommen hatte habe ich den oben genannten code für shell-DB verwendet worauf das mysql mir folgenden fehler meldet

Code:
 SET PASSWORD FOR 'teamspeak'@ 'localhost' = old_pasword(
'******'
) #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 'old_pasword ('******')' at line 1


Ich verwende die Mysql version
Code:
MySQL 4.1.11


Ich habe da nun mehrere stunden dran herumgetüftelt und weiss nicht weiter ich hoffe jemand von euch kann mir helfen ....


Im vorraus schonmal vielen dank

DaMaxx
 
Hm, durch googlen habe ich folgendes gefunden:
set password for root@localhost = old_password('PASSWORD')
Ich bin nun leider auch kein Experte, aber vieleicht musst Du auch die ' weglassen :confused:
 
Eine andere Möglichkeit wäre:
Code:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='teamspeak';
 
joa

das werde ich nun mal ausprobieren hab jetzt auch wieder debian aufen root kb mehr auf SuSE und drecks 64 bit gehabt :D najo ich tests nachher nomma :P !!
 
bei mir kommt auch die meldung dass user/password falsch sei .. habe aber alles so gemacht wie es hier steht

das steht in meiner server.ini:

Code:
[DBEXPRESS]
sqldir=mysql_sql/
Drivername=mysql
Database=teamspeak
Hostname=127.0.0.1
User_name=ts
Password=das_password
GetDriverFunc=getSQLDriverMYSQL
VendorLib=/usr/lib/libmysqlclient_r.so.10.0.0
LibraryName=./libsqlmy.so
Active=1


danke schonmal für eure Antworten


Pii
 
Last edited by a moderator:
Benutzer und Passwort wirklich richtig?, ansonsten wahrscheinlich den hier vergessen:

Zuerst einmal muss die MySQL-Datenbank erstellt werden, welche für
TeamSpeak genutzt werden soll und dazu entsprechend einen Benutzer für die Datenbank einrichten. Unter der DB-Shell (phpMyAdmin) folgenden Befehl ausgeführen:

set password for 'datenbankbenutzername'@'server' = old_pasword ('passwort');

Server ist in den meisten Fällen localhost.

Eines der Probleme von TeamSpeak und neueren MySQL-Versionen ist es, dass das Passwort der DB nicht erkannt wird, da es hier wohl Probleme mit dem hash der PW gibt. Eine weitere Möglichkeit wäre, in der my.conf auf dem Server die Option old-password einzufügen, aber die querry in die DB zu schicken ist einfacher und gezielter und betrifft auch nicht das gesamte System.
 
Benutzer und Passwort wirklich richtig?, ansonsten wahrscheinlich den hier vergessen:

dann kommt im phpmyadmin diese meldung (als root):

Code:
Warning: Cannot modify header information - headers already sent by (output started at /usr/share/phpmyadmin/libraries/header_meta_style.inc.php:27) in /usr/share/phpmyadmin/libraries/common.lib.php on line 1160


wenn ich per ssh "mysql" eingebe kommt:

~/tss2_rc2$ mysql
ERROR 1045 (28000): Access denied for user 'ts'@'localhost' (using password: NO)

versteh die welt nich mehr oO im phpmyadmin komm ich rein

danke


edit:

mysql> set password for 'ts'@'127.0.0.1' = old_password ('passwort');
Query OK, 0 rows affected (0.01 sec)

nur es geht immernoch nich..
auch nicht wenn ich als sqluser root angebe .. geht auch nicht!
 
Last edited by a moderator:
Ändere mal in deiner server.ini den Hostnamen von 127.0.0.1 auf localhost.

Über die Console mit
Code:
mysql -u root -p
als root einloggen (Schalter -p = Passwort abfragen)

Anschließend nochmals
Code:
set password for ts2@localhost = old_password('GEHEIM')
eingeben.

Als Ergebnis sollte sowas rauskommen
Code:
Query OK, [b]1 rows affected[/b] (0.01 sec)

Eigentlich sollte es jetzt funktionieren...
 
Last edited by a moderator:
MOD: Full-Quote entfernt!
Versteh ich nicht...


edit:

eingetragen ist ja:
VendorLib=/usr/lib/libmysqlclient_r.so.10.0.0

nur standard installiert war libmysqlclient_r.so.15.0.0 kann ich die nich nehmen? ich versteh das ganze hier nich mehr -.-
 
Last edited by a moderator:
habs rausbekommen!!
Musste in der "/etc/mysql/my.cnf" eine # hinufügen damit er Zugriffe von außerhalb zulässt.

(tut: klick)


Mein nächstes Problem ist, dass ich keine Server mehr adden kann.
Hab die server.dbs convertiert und importiert. Die Server laufen, nur ich kann keine mehr per telnet adden!
Wenn ich im phpmyadmin kontrolier, versucht er dann immer einen Server mit der id 0 zu erstellen.
Als fehlermeldung im telnet kommt:

serveradd 5544
ERROR, unable to initialize server


Kann mir da jemand helfen??

Hier mal einen Auszug aus der server.log:

11-04-08 15:27:15,ERROR,All,SQL, ExecSQL Error: EDatabaseError.Duplicate entry '0' for key 1 in query: INSERT INTO ts2_server_privileges (
i_sp_server_id,
s_sp_usergroup,...


pii


edit:
Mein Problem ist erledigt! Habe das ganze jetzt wieder über SQLite laufen...
Danke an alle ;)
 
Last edited by a moderator:
Back
Top