Page 1 of 1

[gelöst] Access denied - using password: No

PostPosted: 02. May 2007 17:33
by twelve
Hallo,

ich verwende MySQL 5.0.37, phpMyAdmin 2.10.1 und habe für den Benutzer "root" in MySQL ein Kennwort gesetzt (zu Testzwecken "temp").
Überprüft habe ich es auf der Konsole mit "mysql -u root -p status".

Wenn ich nun die Zugangsdaten in der "config.inc.php" von phpMyAdmin eingetragen habe:
$cfg['Servers'][$i]['auth_type'] = 'config'
$cfg['Servers'][$i]['user'] = 'root"
$cfg['Servers'][$i]['password'] = 'temp'
erhalte ich als Fehlermeldungen:
phpMyAdmin:
#1045 - Access denied for user 'root'@'localhost' (using password: NO)
MySQL-Log:
Access denied for user 'root'@'localhost' (using password: NO).

Also habe ich $cfg['Servers'][$i]['auth_type'] = 'http' versucht. Mit dem Ergebnis, dass ich immer wieder nach dem Benutzernamen und dem Kennwort gefragt werde (ESC -> Falscher Benutzername/Passwort. Zugriff verweigert).

Wenn ich das MySQL-Kennwort entferne funktioniert der Login ohne Probleme.

Es scheint also, dass phpMyAdmin das Kennwort nicht an MySQL übermittelt bzw. MySQL es nicht erkennt.

Vielleich kann ja jemand helfen.

Gruß
Robert

P.S.: Bei meinen Tests ist mir aufgefallen, dass phpMyAdmin (unter Linux) zum Authentifizieren bei der Einstellung
$cfg['Servers'][$i]['auth_type'] = 'config' nicht den Benutzernamen aus $cfg['Servers'][$i]['user'] verwendet, sondern den Besitzer des Ordners von phpMyAdmin.

PostPosted: 02. May 2007 17:50
by Wiedmann
P.S.: Bei meinen Tests ist mir aufgefallen, dass phpMyAdmin (unter Linux) zum Authentifizieren bei der Einstellung
$cfg['Servers'][$i]['auth_type'] = 'config' nicht den Benutzernamen aus $cfg['Servers'][$i]['user'] verwendet, sondern den Besitzer des Ordners von phpMyAdmin.

Du hast das Security - Script vom XAMPP/Linux ausgeführt? Falls ja, und es jetzt in diesem Verzeichnis eine ".htaccess" gibt, lösche diese.

PostPosted: 02. May 2007 17:59
by twelve
Hallo Wiedmann,

ich verwende kein XAMMP und phpMyAdmin liegt in einem ungeschützten http-Verzeichnis.

Robert

PostPosted: 03. May 2007 10:56
by marcel2005
hmm das kann doch echt nicht sein, dass so viele Leute hier diesen Fehler haben...

ich komme auch in phpmyadmin nichtmehr rein..

hab mir heute bestimmt 2h lang hier die threads durchgelesen, FAQs, Tutorials aber weitergekommen bin ich immernoch nicht


man man

PostPosted: 03. May 2007 20:21
by sari42
2 häufige fehler:
config.inc.php nicht im hauptdir
oder session.save_path falsch oder keine schreibrechte für php

PostPosted: 10. May 2007 15:33
by twelve
Also ich habe zumindest den Fehler gefunden.

Es liegt wie vermutet am safe_mode von PHP.
Allerdings nicht an nicht gesetzten Variablen, sondern an der Tatsache, dass es PHP im safe_mode nicht zulässt, dass dem Befehl mysql_connect() die Parameter host/user/password übergeben werden können, was phpMyAdmin allerdings versucht.
Datei: .../phpmyadmin/libraries/dbi/mysql.dbi.lib.php
Zeile: 33
Code: Select all
$link = @mysql_connect($server, $user, $password, FALSE, $client_flags);

Nachdem die Fehlermeldungen von mysql_connect() durch
Code: Select all
$link = mysql_connect($server, $user, $password, FALSE, $client_flags);

nicht mehr unterdrückt werden, erscheint folgende Ausgabe:

Notice: mysql_connect() [function.mysql-connect]: SQL safe mode in effect - ignoring host/user/password information in /home/nonuser/apache/https/robert/administration/phpmyadmin/libraries/dbi/mysql.dbi.lib.php on line 33

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'robert'@'localhost' (using password: NO) in /home/nonuser/apache/https/robert/administration/phpmyadmin/libraries/dbi/mysql.dbi.lib.php on line 33


Laut http://de3.php.net/manual/en/function.mysql-connect.php können leider definitiv keine Benutzer und keine Kennwort angegeben werden.
Statt dessen verwenden PHP als Benutzername den Namen des Benutzers dem der Server-Prozess gehört. Der Prozessbesitzer wird von phpMyAdmin unter Linux durch den Besitzer der Dateien/Verzeichnisse (chown -R besitzername .../phpmyadmin).

Mich würde interessieren, ob es mit XAMPP in Verbindung mit dem Security-Skript möglich ist bzw. ob das Security-Skript überhaupt den safe_mode aktiviert.

Gruß
Robert

PostPosted: 10. May 2007 17:45
by Wiedmann
Es liegt wie vermutet am safe_mode von PHP.

Jein, sondern am:
twelve wrote:SQL safe mode in effect

Stellt sich natürlich die Frage, warum den ("sql.safe_mode") überhaupt jemand aktivieren sollte...

(Einen "safe_mode" von PHP gibt es auch, ist aber unabhängig davon.)

PostPosted: 10. May 2007 18:07
by twelve
Danke Wiedmann.

Ich hatte ein altes Bash-Skript nach der Neuinstallation verwendet. Darin kam der Befehl
Code: Select all
sed -i "s/safe_mode = Off/safe_mode = On/"
vor, der natürlich auch "sql.safe_mode = Off" geändert hat. Also entweder
Code: Select all
sed -i "s/^safe_mode = Off/safe_mode = On/"

verwenden oder gleich md5sum in Verbindung mit diff & patch.

Auf jeden Fall danke für eure Hilfe.

Gruß Robert