"Verbindung für Controluser wie in Ihrer Konfiguration definiert fehlgeschlagen" mit phpMyAdmin in XAMPP

127

Ich habe gerade XAMPP auf meinem Windows XP-Computer installiert und erhalte die folgende Fehlermeldung:

Die in Ihrer Konfiguration definierte Verbindung für den Steuerungsbenutzer ist fehlgeschlagen.

Bevor ich XAMPP installiert habe, hatte ich eine MySQL-Datenbank installiert und sie hatte ein Passwort. Ich habe das Passwort für mySQL geändert und in die Datei config.inc.php eingegeben. Dabei ist folgende Fehlermeldung aufgetreten:

<?php
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
    $uri = 'https://';
} else {
    $uri = 'http://';
}
$uri .= $_SERVER['HTTP_HOST'];
header('Location: '.$uri.'/xampp/');
exit;
?>

Wenn ich versuche, auf index.php zuzugreifen, scheint etwas mit der XAMPP-Installation nicht zu stimmen. Was kann ich tun, um dieses Problem zu beheben?

Makoto
quelle
19
IMHO sind diese Art von Fragen ziemlich häufig und es wird viel Zeit verschwendet, um sie zu beheben. Auch durch "definierten Umfang von Problemen" ist es fraglich, ob wir solche Fragen unter "Soft-Tool, das üblicherweise von Programmierern verwendet wird" oder "ist ein Praktisches, beantwortbares Problem, das nur bei der weichen Entwicklung auftritt. "Ich fordere die SO-Veteranen daher auf, diesen Beitrag sorgfältig zu prüfen, bevor sie als" Off Topic "markiert werden. SOs werden zu einem vertrauenswürdigen One-Stop-Ziel, um Programmierprobleme von Personen zu lösen, die sich damit konfrontiert und es gelöst haben. Daher wäre es für Programmierer hilfreich, hier eine genaue Antwort zu erhalten, als anderswo nach einem solchen Problem zu suchen.
Dexter

Antworten:

243
  1. Öffnen Sie phpMyAdmin in einem Browser und melden Sie sich als root an.
  2. Erstellen Sie eine Datenbank mit dem Namen phpmyadmin
  3. Erstellen Sie einen angerufenen Benutzer pmaund setzen Sie den "Host" auf den Hostnamen oder die IP-Adresse Ihres Webservers (wenn sich der Webserver und MySQL auf derselben Box befinden localhost), notieren Sie sich das Kennwort und gewähren Sie dem neuen Benutzer die volle Kontrolle die phpmyadminDatenbank. Es wird empfohlen, dass dieser Benutzer keinen Zugriff auf etwas anderes als diese Datenbank hat.
  4. Wechseln Sie in das Installationsverzeichnis von phpMyAdmin, in dem Sie ein Unterverzeichnis mit dem Namen finden sollten sql.
  5. In sqlfinden Sie eine Datei namens create_tables.sql. Öffnen Sie es in einem Texteditor.
  6. Wählen Sie in phpMyAdmin die phpmyadminDatenbank aus und klicken Sie auf die Registerkarte "SQL".
  7. Kopieren Sie den gesamten Text aus create_tables.sqldem Textfeld, führen Sie ihn aus und führen Sie die Abfrage aus.
  8. Öffnen Sie die config.inc.phpDatei im Installationsverzeichnis von phpMyAdmin und fügen Sie die folgenden Zeilen hinzu (oder ändern Sie die vorhandenen Einstellungen, falls diese bereits vorhanden sind):

    $cfg['Servers'][1]['pmadb'] = 'phpmyadmin';
    $cfg['Servers'][1]['controluser'] = 'pma';
    $cfg['Servers'][1]['controlpass'] = '<your password>';
    
    // Note: The list below may grow as PMA evolves and more control tables are added
    // Use your common sense! Don't just blindly copypasta, look at what it means!
    $cfg['Servers'][1]['bookmarktable'] = 'pma_bookmark';
    $cfg['Servers'][1]['relation'] = 'pma_relation';
    $cfg['Servers'][1]['userconfig'] = 'pma_userconfig';
    $cfg['Servers'][1]['table_info'] = 'pma_table_info';
    $cfg['Servers'][1]['column_info'] = 'pma_column_info';
    $cfg['Servers'][1]['history'] = 'pma_history';
    $cfg['Servers'][1]['recent'] = 'pma_recent';
    $cfg['Servers'][1]['table_uiprefs'] = 'pma_table_uiprefs';
    $cfg['Servers'][1]['tracking'] = 'pma_tracking';
    $cfg['Servers'][1]['table_coords'] = 'pma_table_coords';
    $cfg['Servers'][1]['pdf_pages'] = 'pma_pdf_pages';
    $cfg['Servers'][1]['designer_coords'] = 'pma_designer_coords';
  9. Speichern und schließen Sie die Datei.

WICHTIG - PMA lädt die Konfiguration beim Anmelden, wertet sie aus und speichert sie in den Sitzungsdaten, sodass die Nachricht erst dann verschwindet, wenn Sie Folgendes tun:

  1. Melden Sie sich von phpMyAdmin ab und erneut an

Problem gelöst.

DaveRandom
quelle
3
+1 für "Abmelden und wieder anmelden". Ich verschwendete fünf Minuten, ohne zu merken, dass ich das tun musste.
Matthew G
1
@MatthewG Ja, die Konfigurationsdatei wird an dem Punkt in Ihre Sitzung geladen, an dem Sie sich anmelden, um die Festplatten-E / A zu reduzieren, sodass ^^ für alle Änderungen gilt, die Sie möglicherweise an der PMA-Konfigurationsdatei
vornehmen
14
Aus irgendeinem Grund hat meine Version von phpmyadmin die Tabellennamen "pma__bookmark" und so weiter mit 2 "Unterstrichen". Wenn jemand das gleiche hat, sollten Sie die "config.inc.php" entsprechend bearbeiten. Übrigens befindet sich die Konfigurationsdatei im Verzeichnis "/ etc / phpmyadmin" in Ubuntu
ajaybc
6
Unter Ubuntu 14.04 befindet sich der Speicherort für
create_tables.sql
5
Dies ist eine ausgezeichnete Antwort (die 100. +von mir;)). Ich habe jedoch nicht das Beispielverzeichnis gefunden, auf das in Schritt 4 verwiesen wurde. Stattdessen war es hier: /usr/share/doc/phpmyadmin/examplesund dort habe ich die komprimierte SQL-Datei gefunden : create_tables.sql.gz.
Majid Fouladpour
134

Wenn Sie hier angekommen sind und Debian / Ubuntu (oder eine andere dpkg-basierte Distribution) verwenden, führen Sie den folgenden Befehl aus:

sudo dpkg-reconfigure phpmyadmin

Das phpmyadmin-Paket enthält das Skript, mit dem dieser Vorgang für Sie ausgeführt werden kann. Es ist lediglich ein Benutzer mit Berechtigungen erforderlich. sudo ist natürlich nicht erforderlich, wenn Sie als root angemeldet sind.

BEARBEITEN: Es könnte sich lohnen, den aktuellen phpmyadmin-Benutzer zu löschen.

Oder Cohen
quelle
2
Das hat bei mir funktioniert, ich musste nur die angeforderte Datenbank neu installieren. Vielen Dank. (Ubuntu 12.04)
ino
17
Ich musste während der Konfiguration "pma" anstelle von "phpmyadmin" für den Steuerungsbenutzer eingeben, damit dies funktioniert.
Hardell
1
Danke, du hast meinen Tag gerettet :) hehe
Jeremy Dicaire
2
Dropping ‚phpMyAdmin‘ user ersten und läuft ‚sudo dpkg-recon phpMyAdmin‘ nach für mich gearbeitet. Vielen Dank!
bshea
1
Hinweis: Dadurch werden alle konfigurierten Server gelöscht, falls vorhanden.
Raptor
23

Kommentieren Sie einfach den gesamten Code "Benutzer für erweiterte Funktionen" und "Erweiterte phpMyAdmin-Funktionen" aus config.inc.php.

Streifen
quelle
Irgendeine Erklärung dafür? Wie und warum funktioniert das?
Huey
1
@ Ben: Manchmal ist das alles;)
Streifen
In welchen Dateien .... Das ist so uninformativ! Aber jeder versteht, also fühle ich mich dumm und unfähig, es zu reparieren, lol doppelt verlieren!
Jamie Hutber
2
Das wäre config.inc.php
Rocoty
1
Gibt es so etwas wie User for advanced features" and "Advanced phpMyAdmin featuresdrinnen nichtphpmyadmin/config.inc.php
AN
11

Haben Sie kürzlich Ihr MySQL Server-Root-Passwort geändert? Wenn die Antwort JA lautet, ist dies die Ursache für den Fehler / die Warnung in der phpMyAdmin-Konsole. Um das Problem zu beheben, bearbeiten Sie einfach die Datei config-db.php Ihres phpMyAdmin und richten Sie das richtige Datenbankkennwort ein.

Die erste Antwort ist meiner Ansicht nach zu viel durcheinander und die zweite Antwort hat bei mir nicht funktioniert. So:

Auf Linux-basierten Servern befindet sich die Datei normalerweise in:

/etc/phpmyadmin/config-db.php

oder:

/etc/phpMyAdmin/config-db.php

Beispiel: (Meine Datei sah so aus und ich habe den Benutzer von phpmyadminin geändert, den Benutzernamen admin, den ich für die Pflege meiner Datenbank über phpmyadmin erstellt habe, und das entsprechende Kennwort eingegeben.

$dbuser='phpmyadmin';
$dbpass=''; // set current password between quotes ' '
$basepath='';
$dbname='phpmyadmin';
$dbserver='';
$dbport='';
$dbtype='mysql';

Credits: http://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-defined-in-your-configuration-failed/

Ben
quelle
4

Dies funktionierte bei mir mit phpmyadmin unter Ubuntu 16.04:

Ich habe /etc/phpmyadmin/config.inc.php bearbeitet und die folgenden 2 Zeilen geändert:

$cfg['Servers'][$i]['controluser'] = 'root'; 
$cfg['Servers'][$i]['controlpass'] = 'thepasswordgiventoroot'; 
Dominique H.
quelle
3

Auf Ubunbtu.

Bens Nachricht ist geschlossen, aber es ist nicht das Root-Passwort, das das Problem darstellt. Ich habe festgestellt, dass ich bei der Installation ein Passwort für die phpmyadmin-Datenbank erstellt habe. Dieses Passwort wird nicht in die Installation auf Ubuntu übernommen, daher ist die Variable $ dbpass = ''; Die Datei mit den Datenbankeinstellungen ist leer und nicht das von Ihnen festgelegte Kennwort.

  1. Um zu überprüfen, ob Sie das richtige Kennwort in der Befehlszeile haben, melden Sie sich mit dem folgenden Befehl bei mysql an: mysql -u phpmyadmin -p Versuchen Sie ein leeres Kennwort. Ich habe festgestellt, dass mir der Zugriff verweigert wurde. Geben Sie den Befehl erneut mit dem Kennwort ein, das Sie während der Installation festgelegt haben. Wenn es sich anmeldet, wissen Sie jetzt, wie das Passwort lautet.
  2. Bearbeiten Sie /etc/phpadmin/config-db.php und ändern Sie $ dbpass = ''; zu $ dbpass = 'Ihr Passwort'; und speichern Sie die Datei.
  3. Bearbeiten Sie /etc/dbconfig-common/phpmyadmin.conf change dbc_dbpass = '' ; to dbc_dbpass = 'Ihr Passwort'; und speichern Sie die Datei. Schließen Sie Ihren Browser und laden Sie ihn neu. Sie werden nun feststellen, dass die Nachricht nicht mehr aktuell ist.
Clive Wi
quelle
0

Das Problem ist, dass das Kennwort des PhpMyAdmin-Steuerbenutzers (normalerweise: pma) nicht mit dem Kennwort des MySQL-Benutzers übereinstimmt: pma (derselbe Benutzer).

So beheben Sie das Problem: 1. Legen Sie hier das gewünschte Kennwort für den Benutzer pma fest:

"C: \ xampp \ phpMyAdmin \ config.inc.php"

$ cfg ['Server'] [$ i] ['Steuerpass'] = 'your_new_phpmyadmin_pass';

(sollte wie in Zeile 32 sein)

Dann gehe zu MySQL, logge dich als root ein, gehe zu: (Ich habe phpmyadmin benutzt, um hierher zu gehen)

Datenbank: mysql »Tabelle: Benutzer

Bearbeiten Sie den Benutzer: pma

Wählen Sie "Passwort" aus der Funktionsliste (linke Spalte) und setzen Sie "your_new_phpmyadmin_pass" in die rechte Spalte und klicken Sie auf go.

Starten Sie den MySQL-Server neu.

Jetzt sollte die Nachricht verschwinden.

Tarik
quelle
0

Ich nehme einfach Änderungen an der Datei config.inc.php vor. In diesem Link ist ein falsches Passwort vorhanden. $ Cfg ['Server'] [$ i] ['Passwort'] = 'Ihr Passwort'; und jetzt ist es perfekt funktioniert.

Mohit Sharma
quelle
Bitte bearbeiten Sie Ihre Frage und fügen Sie weitere Details hinzu. Dies ist von geringer Qualität.
Mathews Sunny
Das obige ist die Auflösung, ich habe die obigen Schritte nicht befolgt. Ich gehe einfach in das Verzeichnis config.inc.php und öffne diese Datei config.inc.php im Editor und ändere diese Zeile $ cfg ['Server'] [$ i] ['Passwort'] = 'Ihr Passwort'
Mohit Sharma
Ich habe gesehen, dass das Passwort erwähnt wird, dass es falsch ist, und ich habe das richtige Passwort erneut eingegeben und es gespeichert und den phpmyadmin erneut ausgeführt und es läuft jetzt ordnungsgemäß
Mohit Sharma
0

auf ubuntu /etc/phpmyadmin/config-db.php

Stellen Sie sicher, dass das Kennwort mit Ihrer config.inc.php für den Steuerungsbenutzer übereinstimmt

auch für den Blowfish zu kurzer Fehler

Bearbeiten Sie /var/lib/phpmyadmin/blowfish_secret.inc.php und verlängern Sie den Schlüssel

Royce
quelle
0

auf Ubuntu 18.04 im etc/phpmyadmin/config.inc.php Kommentar den ganzen Block

Optional: Benutzer für erweiterte Funktionen

boaz
quelle
-1

Nachdem ich heute gerade XAMPP installiert hatte, entschied ich mich, einen anderen Standardport für MySQL zu verwenden, was schrecklich war. Stellen Sie sicher, dass Sie diese Zeilen zum phpMyAdmin hinzufügen config.inc.php:

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['port'] = 'port';`
David
quelle