[MySQL] Problem bei der Einrichtung von Benutzern

S

schiff

Jungspund
Hallo zusammen,

ich habe einen MySQL-Server frisch aufgesetzt. Über die Shell habe ich auf folgende Weise einen Benutzer eingerichtet:
Code:
GRANT ALL ON *.* TO foobar@10.211.163.207 IDENTIFIED BY 'test2';
FLUSH PRIVILEGES;
Wenn ich nun per PHP von einem anderen Rechner (also nicht localhost) auf die Datenbank zugreifen möchte, erscheint folgende Meldung:
Code:
Access denied for user 'foobar'@'10.211.163.207' (using password: YES)
Mein Script sieht so aus:
PHP:
$host = '10.211.163.187';
$user = 'foobar';
$pw = 'test2';
mysql_connect( $host, $user, $pw ) or die( mysql_error() );
IP 187 ist der MySQL-Server, und die IP 207 ist der Webserver.

Was habe ich bei der Einrichtung falsch gemacht, dass die Verbindung fehlschlägt?
 
Also ich bin danach vorgegangen, ich hatte auch '%' bereits verwendet. Habe ich etwa ein Detail nicht beachtet?
 
was sagt: SELECT * FROM user; in der db mysql?

frank
 
So spontan fällt mir nur ein, dass um den user-namen im grant-statement ' herum sein sollten.
Probier das doch mal.
 
Ich wuerde einfach mal 'GRANT ALL PRIVILEGES...' nutzen. Allerdings sollte ein User, der remote-Zugriff hat, niemals alle Rechte fuer alle Datenbanken haben, sondern nur die Rechte, die der User bzw. die Applikation, die diesen nutzt, benoetigt.

Code:
GRANT ALL PRIVILEGES ON *.* TO 'foobar'@10.211.163.207 IDENTIFIED BY 'test2';
FLUSH PRIVILEGES;
 
Ich habe die Befehle von theton nun ausgeführt und endlich klappt es - zumindestens bin ich einen Schritt weiter.

Code:
Client does not support authentication protocol requested by server; consider upgrading MySQL client
Meine php.ini sagt bei MySQL aus:
Code:
Client API version 	3.23.49
Und als Server ist MySQL 4.1.7 installiert.
 
Ja, das kann auch nicht klappen da sich afaik zwischen diesen Versionen der Authentifizierungsmechanismus geändert hat.

Client upgraden müsste das lösen.
 
Genau, folgendes fand ich bei google:
Client does not support authentication protocol requested by server; consider upgrading MySQL client
besagt, dass der mysql-client nicht mit der benutzten mysql datenbankversion kompatibel ist.
der mysql-client kann sein, die verwendete php version und/oder die verwendete anwendung.
mysql versionen vor 4.1.x haben eine andere passwort authentifizierung. in versionen vor 4.1.x werden passwörter mit einem 16bit hash gespeichert, seit version 4.1.x mit einem 41bit hash.
man kann mysql 4.1.x mit dem parameter --old-passwords starten. i.r. sollte mysql dann auch mit der alten passwortmethode umgehen können.
oder man installiert einfach eine mysql version < 4.1.x
 
Das Problem der veralteten Authentifizierungsmechanismen ist ganz einfach zu loesen:
Code:
SET PASSWORD for 'foobar'@10.211.163.207 = OLD_PASSWORD('test2');
Damit wird das alte Passwort-Format benutzt und ab MySQL 3.1 sollten alle Clients dann damit klar kommen, egal wie alt sie sind.
 
Das hatte ich bereits getestet, aber leider ohne Erfolg.
Ich erhalte dann wieder die Meldung:
Access denied for user 'toopadmin'@'10.211.163.207' (using password: YES)
 
Zuletzt bearbeitet:
Dann schau mal in die Log-Datei vom mysqld, was fuer Meldungen kommen, wenn du versuchst dich anzumelden und schmeiss die mal hier ins Board.
 
Tu doch einfach deinen Client upgraden als dich mit sowas rumzuschlagen.

Die von theton vorgeschlagene Methode hat bei mir in ca. 2 von 3 Fällen nicht geklappt. (und mit diesen 3 Fällen meine ich verschiedene kombinationen von client 3.x und server 4.x)

Keine Ahnung warum, laut manual sollte es theoretisch immer gehen, aber praktisch, naja.......
 
Kann ich so nicht bestaetigen. Bei mir hat die OLD_PASSWORD-Methode bisher in 99% der Faelle geklappt. Probleme gab es eigentlich nur mit MySQL-Versionen < 3.2. Aber stimmt schon... 'nen Update ist hier sicherlich der bessere Weg, sofern die notwendigen Rechte auf dem Server vorhanden sind. MySQL 3.23 ist schon arg veraltet. Allerdings moechte ich auch von der 5er MySQL in einer Produktiv-Umgebung abraten. Zu oft sind jetzt schon Leute auf mich zu gekommen, denen die 5er Version Tabellen zerlegt hat.
 
Ich habe mich nun für ein Downgrade entscheiden und zwar installiere ich die Version 4.0.27.

Vielen Dank nochmal an euch für eure Hilfe. Ich hätte mich wohl sonst noch lange damit rumgeschlagen.
 
Ahoi, ich mal wieder.

Ich habe nun MySQL 4.0.27 erfolgreich installiert. Auf dem lokaAhoi, ich mal wieder.

Ich habe nun MySQL 4.0.27 erfolgreich installiert. Auf dem lokalen Rechner habe ich nun testweise PHP 4.4.2 installiert. Dort funktioniert mein mysql_connect() ohne Probleme. Auf dem zweiten Rechner erhalte ich jedoch weiterhin die folgende Fehlermeldung:
Warning: mysql_connect(): Access denied for user: 'foo@10.211.163.207' (Using password: YES) in /opt/jakarta-tomcat-4.1.24/webapps/phpservlet/foobar.php on line 19
Access denied for user: 'foo@10.211.163.207' (Using password: YES)
Den Benutzer habe ich laut Dokumentation eingerichtet:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'foo'@'localhost' IDENTIFIED BY 'bla' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'foo'@'%' IDENTIFIED BY 'bla' WITH GRANT OPTION;
http://dev.mysql.com/doc/refman/4.1/en/adding-users.html
Testweise habe ich auch den localhost-Eintrag aus der DB entfernt.

Warum läuft es nur lokal und nicht auf dem zweiten Rechner? Der Port ist defenitiv frei!len
 
Jawohl und als alternative auch
Code:
> mysqladmin -uroot -p reload
und
Code:
> mysqladmin -uroot -p flush-privileges
und auch den MySQL-Server neugestartet.
 
Kannst du dich von einer MySQL-Konsole (also dem Konsolen-Client) von dem Rechner aus einloggen, bei dem es mit PHP nicht geht?
Code:
mysql -u foo -p -h <ip-des-mysql-servers>
 
Das ist das Problem, der ist nicht auf dem Rechner installiert und ich möchte diesen auch ungern installieren, da der Rechner im produktiven Einsatz ist.
 

Ähnliche Themen

Keine Anmeldung bei phpmyadmin möglich!

JBidWatcher: Problem bei loading Auctions in Verbindung mit mySQL

SSH nicht mehr erreichbar nach fail2ban / disabling root login

dovecot und postfix Konfiguration Problem

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Zurück
Oben