Fix Zugriff für Benutzer 'root' @ 'localhost' für phpMyAdmin verweigert

74

Ich verwende WAMP Server 2.2 auf einem PC. In phpMyAdmin (Version 5.5.24) habe ich den Benutzer 'root' (mit 'localhost' host) bearbeitet und ihm das Passwort 'root' gegeben. Dies stellte sich als großer Fehler heraus, den ich rückgängig machen möchte. Wenn ich jetzt zu localhost / phpmyadmin / gehe, erhalte ich das Menü der Datenbanken auf der linken Seite, aber der Hauptrahmen hat einen Fehler, der lautet:

#1045 - Access denied for user 'root'@'localhost' (using password: NO)
phpMyAdmin tried to connect to the MySQL server, and the server rejected the 
connection. You should check the host, username and password in your 
configuration and make sure that they correspond to the information given 
by the administrator of the MySQL server.

Wenn ich zu 127.0.0.1/phpmyadmin gehe , wird der Fehler nicht angezeigt und alles funktioniert einwandfrei.

Ich habe versucht, das Passwort des Benutzers wieder in kein Passwort zu ändern. Ich habe versucht, die Datei config.inc.php zu ändern, um das neue Kennwort hinzuzufügen (aber dadurch wurde der Fehler bei phpMyAdmin vollständig behoben). Ich habe versucht, den Benutzer root / localhost zu entfernen und neu zu erstellen. Nichts scheint zu funktionieren. Der Benutzer root / localhost scheint kein Kennwort und alle Berechtigungen zu haben, der Fehler bleibt jedoch bestehen.

Irgendwelche Ideen oder wie ich den Zugriff dieses Benutzers wieder normalisieren kann, ohne WAMP neu installieren zu müssen?

Luke
quelle
Privilegien sind hostspezifisch
2
Bearbeiten Sie Ihre %windir%\system32\drivers\etc\hostsDatei und fügen Sie sie hinzu / kommentieren Sie 127.0.0.1 localhostsie aus
dev-null-
1
Manchmal können Anmeldeprobleme mit phpMyAdmin behoben werden, indem alle Cookies gelöscht werden.
XYZ
@xyz, dein Kommentar hat mein Problem gelöst. Ich steckte fest und verschwendete meinen halben Tag.
Ghulam Akbar

Antworten:

91

Finden config.incDatei unter C:\wamp\apps\phpmyadmin3.5.1 Inneren finden diese Datei diese eine Zeile

$cfg['Servers'][$i]['password'] =";

und ersetzen Sie es durch

$cfg['Servers'][$i]['password'] = 'Type your root password here';
Nikhil G.
quelle
9
Das hat bei mir funktioniert. Vielen Dank. Ich verwende XAMPP, daher lautet das Verzeichnis der Datei {Laufwerk (C: / oder D: / oder was auch immer sich der XAMPP-Ordner befindet)} xampp \ phpMyAdmin \ config.inc.php und befolge die Anweisungen von Nikhil.
MOH
1
Hier habe ich einen Vorschlag, um diese Lösung reibungsloser zu gestalten. Nach dieser letzten Codezeile können Sie auch <code> $ cfg ['Server'] [$ i] ['AllowNoPassword'] = true hinzufügen; </ code>
Nikhil G
Kurze und effiziente Antwort. Vielen Dank!
Mustafa Mohammadi
2
Gibt es so etwas wie $cfg['Servers'][$i]['password'] in dieser Konfigurationsdatei nicht ...
AN
1
Gut zu wissen: Für XAMPP auf W7 ist die Datei/xampp/phpMyAdmin/config.inc.php
Minuten
24

Ich hatte das gleiche Problem, nachdem ich die Passwörter in der Datenbank geändert hatte. Was ich getan habe, war die Bearbeitung des aktualisierten Passworts, das ich zuvor geändert hatte, und ich habe nicht in der config.inc.php und den gleichen Benutzernamen unter D aktualisiert : \ xamp \ phpMyAdmin \ config.inc

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = **'root'**;
$cfg['Servers'][$i]['password'] = **'epufhy**';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';
Ezra A.Mosomi
quelle
Dies ist mir passiert, weil ich das Passwort meines Root-Benutzers in MySQL geändert habe. Ich musste nur das Passwort innerhalb von config.inc(meins war config.inc.php) aktualisieren und es funktionierte für mich.
Luckyging3r
Ja, Sie müssen die Updates für alle Dateien synchronisieren, da sie voneinander abhängen.
Ezra A.Mosomi
16

Nachdem ich das Passwort für mein "root" auf der phpMyAdmin-Seite geändert hatte, hatte ich das gleiche Problem und suchte auch im Internet nach Lösungen, konnte jedoch nicht die gewünschte Antwort erhalten. Daher überprüfe ich die Dokumentation im phpMyAdmin-Verzeichnis.

Gehen Sie zu und bearbeiten Sie die Datei

\modules\phpmyadmin414x140123114237\config.sample.inc.php

Suche nach Linie

$cfg['Servers'][$i]['auth_type'] = 'config'

und ändern Sie die 'config' in 'http'. Dadurch können Sie den Benutzernamen und das Kennwort eingeben, wenn Sie mit Ihrem Browser zu Ihrer phpMyAdmin-Seite wechseln .

ODER

phpmyadmin414x140123114237\doc\htmlHilfe und Suche finden $cfg['Servers'][$i]['auth_type']Sie in der Dokumentationsdatei unter demselben phpMyAdmin-Verzeichnis ( ). Außerdem finden Sie 4 Optionen zur Auswahl, wie Sie sich auf Ihrer phpMyAdmin-Seite anmelden können.

Syed Nazri bin Wan Ikhsan
quelle
7

Suchen Sie die Datei config.inc.php unter C: \ xampp \ phpMyAdmin und öffnen Sie sie in einem beliebigen Editor. Suchen Sie die folgende Zeile:

$cfg['Servers'][$i]['password'] = '  ';

Geben Sie das gewählte Passwort in die Anführungszeichen ein. Um localhost / phpmyadmin nach einem Benutzernamen und einem Passwort zu fragen, suchen Sie die folgende Zeile:

$cfg['Servers'][$i]['auth_type'] = 'config';

Ändern Sie die obige Zeile in:

$cfg['Servers'][$i]['auth_type'] = 'cookie';
Shubham Balyan
quelle
1
Dies funktioniert, wenn Sie zuerst Apache und MySql beenden und dann die obigen Schritte ausführen.
Aljohn Yamaro
4

Nun .. Das scheint mir sehr seltsam, aber es hat plötzlich funktioniert !!

Was ich genau getan habe war:

  1. Navigierte zum Ordner phpMyAdmin und bearbeitete die Datei "config.inc.php".
  2. Suche nach der Zeile: $ cfg ['Server'] [$ i] ['Passwort'] = '';
  3. Es wurde ein Passwort zwischen '' hinzugefügt, sagen wir '1234'.
  4. Reloaded localhost / phpmyadmin & 127.0.0.1/phpmyadmin (beide zeigten den gleichen Fehler)
  5. "Config.inc.php" auf den alten Zustand zurückgesetzt (Passwort entfernt)
  6. Schritt 4 erneut ausgeführt

Und plötzlich hat es funktioniert!

Hazem Elraffiee
quelle
Die meiste APT und GENAUE Lösung
CodefreaK
4

Wenn Sie ein Passwort für MySQL haben, schreiben Sie wie folgt:

Suchen Sie die Datei config (dot) inc unter C: \ wamp \ apps \ phpmyadmin3.5.1. Suchen Sie in dieser Datei diese eine Zeile

$cfg['Servers'][$i]['password'] =";

und ersetzen Sie es durch

$cfg['Servers'][$i]['password'] = **'your-password'**;

simer
quelle
3

@ Dragon hatte die richtige Idee, aber es gab ein wenig Details.

Wenn Sie den Zugriff verwenden 127.0.0.1/phpmyadminund sich die in MysQL eingerichteten Benutzer genau ansehen, sollten Sie 3 Versionen des rootBenutzernamens sehen.

Dies liegt daran, dass in MySQL jede Benutzer-ID einem Host zugeordnet ist, dh dem PC (IP-Adresse), von dem aus sich der Benutzer anmelden darf. Ihre 3 '' root'-Benutzer-IDs sind also tatsächlich dieselbe Benutzer-ID, die sich von 3 separaten HOSTS aus anmelden darf. Normalerweise hat das 'root' 3 HOSTS-Setup, 127.0.0.1, localhost und :: 1

Diese sind :-

localhost ist ein Alias ​​für DIESE MASCHINE, die aus Ihrer HOSTS-Datei erstellt wurde (c: \ windows \ system32 \ drivers \ etc \ hosts).

127.0.0.1 ist die IPv4-Loopback-IP-Adresse dieser Maschine

:: 1 ist die IPv6-Loopback-IP-Adresse dieser Maschine

Was Ihnen wahrscheinlich passiert, ist, dass Sie ein Passwort für [email protected] festgelegt haben, aber keines der anderen. Jetzt wird Ihr Browser 'willkürlich' entscheiden, :: 1 oder 127.0.0.1 als Host-IP zu verwenden. Wenn er also :: 1 verwendet, schlägt Ihre Anmeldung fehl.

Melden Sie sich also mit 127.0.0.1/phpmyadminallen 3 Root-Benutzernamen an und ändern Sie sie, um dasselbe Passwort zu erhalten. Dieses Problem sollte nicht mehr auftreten.

Stellen Sie außerdem sicher, dass Ihre HOSTS-Datei diese 2 Einträge enthält

127.0.0.1  localhost
::1        localhost
RiggsFolly
quelle
Hinzufügen ::1 localhostwar in meinem Fall die perfekte Lösung. Danke vielmals!
Devner
3

Verwenden $cfg['Servers'][$i]['auth_type'] = 'config';ist unsicher, denke ich.

Cookies mit zu verwenden $cfg['Servers'][$i]['auth_type'] = 'cookie';ist besser, denke ich.

Ich fügte hinzu:

$cfg['LoginCookieRecall'] = true;

$cfg['LoginCookieValidity'] = 100440;

$cfg['LoginCookieStore'] = 0;  //Define how long login cookie should be stored in browser. Default 0 means that it will be kept for existing session. This is recommended for not trusted environments.
$cfg['LoginCookieDeleteAll'] = true; //If enabled (default), logout deletes cookies for all servers, otherwise only for current one. Setting this to false makes it easy to forget to log out from other server, when you are using more of them.

Ich habe dies in phi.ini hinzugefügt

session.gc_maxlifetime=150000
Nyxee
quelle
3

Ich verwende diese URL, um phpMyAdmin http: // localhost: 2145 / phpmyadmin einzugeben , erhalte jedoch die folgende Fehlermeldung:
"phpMyAdmin hat versucht, eine Verbindung zum MySQL-Server herzustellen, und der Server hat die Verbindung abgelehnt. Sie sollten den Host, den Benutzernamen und das Kennwort in Ihrem überprüfen Konfiguration und stellen Sie sicher, dass sie den vom Administrator des MySQL-Servers angegebenen Informationen entsprechen. "
Meine Datei config.inc.php ist

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['host'] = 'localhost:2145';
$cfg['Servers'][$i]['connect_type'] = 'cookie';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = '';
$cfg['Servers'][$i]['controlpass'] = '';

Diese Änderung behebt den Fehler für mich

$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;

und dann

sudo service mysql stop
/opt/lampp/lampp start

und Problem gelöst

Muhammad Aqeel
quelle
3

So beheben Sie den obigen Fehler: -

a)  Open Mysql console from the tray of WAMP server

b)  It will ask for a password(you might have set this password earlier when u installed MySql in your system)(In my case it is admin)

c)  Enter admin (press enter)

Jetzt bedeutet dies, dass Ihr PhpMyAdmin kein Kennwort für MySQL annimmt und keine Verbindung zu MySQL herstellen kann. Sie können jedoch eine Verbindung zu Ihrem MySQL-Server herstellen, indem Sie das Kennwort für diese Open config.inc-Datei über den folgenden Pfad angeben

C:\wamp\apps\phpmyadmin4.1.14

Und ersetzen Sie diese Leitung

$cfg['Servers'][$i]['password'] =’ ’;

zu

$cfg['Servers'][$i]['password'] = 'admin';

Ich hoffe, dass es funktionieren wird...

Henry Disoza
quelle
3

Was hat bei mir funktioniert:

Gehen Sie zu config.inc.php.

Veränderung

$cfg['Servers'][$i]['AllowNoPassword'] = true;

zu

$cfg['Servers'][$i]['AllowNoPassword'] = false;

Veränderung

$cfg['Servers'][$i]['password'] = '';

zu

$cfg['Servers'][$i]['password'] = ' ';

Veränderung

$cfg['Servers'][$i]['auth_type'] = 'config';

zu

$cfg['Servers'][$i]['auth_type'] = 'http';

Laden Sie die Seite http: // localhost / phpmyadmin neu

Typ: root
pass: (leer)

Jetzt haben Sie Zugriff darauf. :) :)

AndBecaPine
quelle
2

xampp \ phpMyAdmin / config.inc

Finden-

$ cfg ['Server'] [$ i] ['auth_type'] = 'config'

und ändern Sie die 'config' in 'http'. Dadurch können Sie den Benutzernamen und das Kennwort eingeben, wenn Sie mit Ihrem Browser zu Ihrer phpMyAdmin-Seite wechseln.

Masud
quelle
2

Beachten Sie auch, dass "setup" (dh localhost / phpmyadmin / setup) einen Fehler in der Behandlung der Option "kein Passwort" aufweist. Während es eine Linie erstellt, die sagt:

$cfg['Servers'][$i]['nopassword'] = true;

Der tatsächliche Name des Parameters sollte wie folgt aussehen:

$cfg['Servers'][$i]['AllowNoPassword'] = true;

Dieser "Setup" -Fehler besteht seit dem heutigen 20. Oktober 2015.

IAM_AL_X
quelle
Ich denke, das sind zwei verschiedene Richtlinien. siehe docs.phpmyadmin.net/en/latest/… und docs.phpmyadmin.net/en/latest/…
Isaac Bennetch
2

Versuche $ cfg ['Server'] [$ i] ['Passwort'] = '' zu finden; in der Konfigurationsdatei wamp / scripts / config.inc.php

Setzen Sie dann das Passwort auf Ihr MySQL-Passwort und aktualisieren Sie PhpmyAdmin

Mohit Sharma
quelle
2

Ich war auch mit diesem Problem konfrontiert.

Ich fand, dass das Passwortfeld in der Konfigurationsdatei von phpmyadmin leer war. Ich habe das Passwort eingegeben, das ich in die Datenbankeinstellungen eingegeben habe. jetzt funktioniert es gut

pradeep joshi
quelle
0

Manchmal ist die Konfiguration nicht immer das Problem.

Versuchen Sie, die MySQL-Konfiguration zu überprüfen. Wenn Sie den Port Nr. Geändert haben. Nehmen Sie auf MySQL ähnliche Änderungen an der PHP-Konfiguration vor php.ini. Suchen und ersetzen Sie die erforderlichen Änderungen.

Steven Fernz
quelle
0

Ich hatte das gleiche Problem mit XAMPP und phpMyAdmin und so konnte ich es leicht lösen.


1. Öffnen Sie das XAMPP-Kontrollfeld.
2. Wählen Sie dann rechts die Explorer-Schaltfläche.


3. Anschließend wird zu dem Speicherort navigiert, an dem sich die Konfigurationen befinden. Sie müssen
sich neben dem Ordner phpMyAdmin befinden
und dann mit der rechten Maustaste auf den markierten Ordner und klicken Wählen Sie die Bearbeitungsoption in einem beliebigen Texteditor.



4. Bearbeiten Sie dann nur den folgenden abgerundeten Abschnitt Ihres MySQL-Server-Benutzernamens und -Kennworts.
Wenn Ihr MySQL-Server-Benutzername root ist und
wenn Ihr MySQL-Server-Passwort root ist , behalten Sie das Bild bei.

Ändern Sie sie entsprechend Ihrem Benutzername und Passwort, die Sie dem MySQL-Server gegeben haben



5. Speichern Sie die Änderungen, öffnen Sie Ihren Browser und fügen Sie sie ein
http: //localhost/phpmyadmin/index.php
, um zu phpMyAdmin zu navigieren
Niroshan Ratnayake
quelle