„Połączenie dla użytkownika sterującego zgodnie z definicją w Twojej konfiguracji nie powiodło się” z phpMyAdmin w XAMPP

127

Właśnie zainstalowałem XAMPP na moim komputerze z systemem Windows XP i otrzymuję komunikat o błędzie:

Połączenie dla użytkownika sterującego zdefiniowane w konfiguracji nie powiodło się.

Zanim zainstalowałem XAMPP, miałem zainstalowaną bazę danych MySQL i hasło. Zmieniłem i umieściłem hasło w config.inc.php dla MySQL i otrzymałem ten błąd:

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

Kiedy próbuję uzyskać dostęp do index.php, wygląda na to, że coś jest nie tak z instalacją XAMPP. Co mogę zrobić, aby rozwiązać ten problem?

Makoto
źródło
20
IMHO tego rodzaju pytania są dość powszechne i marnuje się dużo czasu na ich naprawianie. Również ze względu na „zdefiniowany zakres problemów” jest dyskusyjne, jeśli umieścimy takie pytanie w „miękkim. Narzędziu powszechnie używanym przez programistów” lub „jest praktyczny, dający się rozwiązać problem, który jest charakterystyczny dla soft developmentu ”. Dlatego proszę weteranów SO o uważne rozważenie takiego posta przed zaznaczeniem„ off topic ”. SO stały się zaufanym, jednym przystankiem, w którym można znaleźć odpowiedzi na problem programistyczny od osób, które go spotkały i rozwiązały. Więc byłoby pomocne dla programisty, aby uzyskać tutaj dokładną odpowiedź, niż szukanie w innym miejscu takiego problemu.
Dexter

Odpowiedzi:

243
  1. Otwórz phpMyAdmin w przeglądarce i zaloguj się jako root.
  2. Utwórz bazę danych o nazwie phpmyadmin
  3. Utwórz użytkownika o nazwie pmai ustaw jako „host” nazwę hosta lub adres IP serwera WWW (jeśli serwer WWW i MySQL są na tym samym urządzeniu localhost), zapisz hasło i nadaj nowemu użytkownikowi pełną kontrolę nad phpmyadminbazy danych. Zaleca się, aby ten użytkownik nie miał dostępu do niczego innego niż ta baza danych.
  4. Przejdź do katalogu instalacyjnego phpMyAdmina, w którym powinieneś znaleźć podkatalog o nazwie sql.
  5. W sqlWas znajdzie plik o nazwie create_tables.sql. Otwórz go w edytorze tekstu.
  6. W phpMyAdmin wybierz phpmyadminbazę danych i kliknij zakładkę „SQL”.
  7. Skopiuj / wklej cały tekst z create_tables.sqldo pola tekstowego i uruchom zapytanie.
  8. Otwórz config.inc.phpplik w katalogu instalacyjnym phpMyAdmina i dodaj następujące wiersze (lub zmień istniejące ustawienia, jeśli już tam są):

    $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. Zapisz i zamknij plik.

WAŻNE - PMA ładuje konfigurację podczas logowania, ocenia ją i przechowuje w danych sesji, więc wiadomość nie zniknie, dopóki tego nie zrobisz:

  1. Wyloguj się z phpMyAdmin i zaloguj ponownie

Problem rozwiązany.

DaveRandom
źródło
3
+1 za „wyloguj się i zaloguj ponownie”. Zmarnowałem pięć minut, nie zdając sobie sprawy, że muszę to zrobić.
Matthew G
1
@MatthewG Tak, plik konfiguracyjny jest ładowany do twojej sesji w momencie, w którym logujesz się w celu ograniczenia we / wy dysku, dzięki czemu ^^ dotyczy wszelkich zmian, które możesz wprowadzić w pliku konfiguracyjnym PMA
DaveRandom
14
Z jakiegoś powodu moja wersja phpmyadmin ma nazwy tabel w postaci „pma__bookmark” i tak dalej z 2 „podkreśleniami”. Jeśli ktoś ma to samo, powinieneś odpowiednio zmodyfikować plik „config.inc.php”. A tak przy okazji, plik konfiguracyjny znajduje się w katalogu „/ etc / phpmyadmin” w Ubuntu
ajaybc
6
W Ubuntu 14.04 lokalizacja create_tables.sql znajduje się w /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz
karlingen
5
To doskonała odpowiedź (setna +ode mnie;)). Ja jednak nie znaleźć przykłady katalog, w którym wskazano w punkcie 4. Zamiast tego był tu: /usr/share/doc/phpmyadmin/examplesi tam znalazłem skompresowany plik sql: create_tables.sql.gz.
Majid Fouladpour
135

Jeśli jesteś tutaj i używasz Debiana / Ubuntu (lub dowolnej innej dystrybucji opartej na dpkg), wykonaj następujące polecenie:

sudo dpkg-reconfigure phpmyadmin

Pakiet phpmyadmin zawiera skrypt do wykonania tej operacji za Ciebie, wszystko czego potrzebuje to użytkownik z uprawnieniami. sudo nie jest oczywiście wymagane, jeśli jesteś zalogowany jako root, oczywiście.

EDYCJA: Może warto spróbować porzucić obecnego użytkownika phpmyadmin.

Albo Cohena
źródło
2
To zadziałało dla mnie, po prostu musiałem ponownie zainstalować bazę danych, o którą prosił. Dzięki. (Ubuntu 12.04)
ino
17
Musiałem wpisać „pma” zamiast „phpmyadmin” dla użytkownika sterującego podczas konfiguracji, aby to zadziałało.
Hardell
2
Dzięki, uratowałeś mi dzień :) hehe
Jeremy Dicaire
2
Upuszczenie najpierw użytkownika „phpmyadmin” i uruchomienie „sudo dpkg-reconfigure phpmyadmin” po tym, jak zadziałało dla mnie. Dzięki!
bshea
1
Uwaga: spowoduje to usunięcie wszystkich skonfigurowanych serwerów, jeśli takie istnieją.
Raptor
23

Po prostu zakomentuj całe bloki kodu „Użytkownik zaawansowanych funkcji” i „Zaawansowane funkcje phpMyAdmina” config.inc.php.

smuga
źródło
Jakieś wyjaśnienie? Jak i dlaczego to działa?
Huey
1
@Ben: Czasami to wszystko ma znaczenie;)
passa
W których plikach… To takie mało informacyjne! Ale wszyscy rozumieją, więc czuję się głupio i nie mogę tego naprawić lol podwójnie przegrać!
Jamie Hutber
2
To będzie config.inc.php
Rocoty
1
Nie istnieje coś takiego jak User for advanced features" and "Advanced phpMyAdmin featureswnętrzephpmyadmin/config.inc.php
AN
13

Czy ostatnio zmieniłeś hasło root serwera MySQL? Jeśli odpowiedź brzmi TAK, to jest to przyczyna błędu / ostrzeżenia w konsoli phpMyAdmin. Aby rozwiązać problem, po prostu wyedytuj plik config-db.php w phpMyAdmin i ustaw odpowiednie hasło do bazy danych.

Pierwsza odpowiedź jest zbyt myląca w moim odczuciu, a druga odpowiedź nie działa w moim przypadku. Więc:

Na serwerach opartych na systemie Linux plik znajduje się zwykle w:

/etc/phpmyadmin/config-db.php

lub:

/etc/phpMyAdmin/config-db.php

Przykład: (Mój plik wyglądał tak i zmieniłem użytkownika z phpmyadminna admin, nazwę użytkownika, którą utworzyłem do obsługi mojej bazy danych przez phpmyadmin, i wprowadziłem odpowiednie hasło.

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

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

Ben
źródło
4

To zadziałało dla mnie z phpmyadmin pod Ubuntu 16.04:

Edytowałem /etc/phpmyadmin/config.inc.php i zmieniłem następujące 2 linie:

$cfg['Servers'][$i]['controluser'] = 'root'; 
$cfg['Servers'][$i]['controlpass'] = 'thepasswordgiventoroot'; 
Dominique H.
źródło
3

Na Ubunbtu.

Wiadomość Bena jest blisko, ale to nie hasło roota jest przyczyną problemu. Problem, który znalazłem, polegał na tym, że utworzyłem hasło do bazy danych phpmyadmin podczas jej instalacji. To hasło nie jest przenoszone do instalacji na systemie ubuntu, więc zmienna $ dbpass = ''; w pliku ustawień bazy danych jest puste, a nie ustawione przez Ciebie hasło.

  1. Aby sprawdzić, czy masz właściwe hasło w wierszu poleceń, zaloguj się do mysql za pomocą następującego polecenia: mysql -u phpmyadmin -p wypróbuj puste hasło Znalazłem odmowę dostępu, wprowadź ponownie polecenie, używając hasła ustawionego podczas instalacji. Jeśli się zaloguje, teraz wiesz, jakie jest hasło.
  2. Edytuj /etc/phpadmin/config-db.php i zmień $ dbpass = ''; to $ dbpass = 'Twoje hasło'; i zapisz plik.
  3. Edytuj /etc/dbconfig-common/phpmyadmin.conf zmień dbc_dbpass = '' ; to dbc_dbpass = 'Twoje hasło'; i zapisz plik. Zamknij przeglądarkę i załaduj ponownie, zobaczysz, że wiadomość zniknęła.
Clive Wi
źródło
0

Problem polega na tym, że hasło użytkownika kontrolnego PhpMyAdmina (zwykle: pma) nie pasuje do hasła użytkownika mysql: pma (ten sam użytkownik).

Aby to naprawić, 1. Ustaw żądane hasło dla użytkownika pma tutaj:

„C: \ xampp \ phpMyAdmin \ config.inc.php”

$ cfg ['Servers'] [$ i] ['controlpass'] = 'your_new_phpmyadmin_pass';

(powinno być jak w linii 32)

Następnie przejdź do mysql, zaloguj się jako root, przejdź do: (użyłem phpmyadmin, aby przejść tutaj)

Baza danych: mysql »Tabela: użytkownik

Edytuj użytkownika: pma

Wybierz „Hasło” z listy funkcji (lewa kolumna) i ustaw „your_new_phpmyadmin_pass” w prawej kolumnie i naciśnij go.

Zrestartuj serwer mysql.

Teraz wiadomość powinna zniknąć.

Tarik
źródło
0

Po prostu wprowadzam zmiany w pliku config.inc.php. W tym łączu jest błędne hasło $ cfg ['Servers'] [$ i] ['password'] = 'your password'; a teraz działa doskonale.

Mohit Sharma
źródło
edytuj swoje pytanie i dodaj więcej szczegółów. To jest niskiej jakości.
Mathews Sunny
Powyższe jest rozdzielczością, nie wykonałem powyższych kroków. Po prostu idę do katalogu config.inc.php i otwieram ten plik config.inc.php w notatniku i zmieniam tę linię $ cfg ['Servers'] [$ i] ['password'] = 'your password'
Mohit Sharma,
Widziałem, że hasło jest wymienione, że jest nieprawidłowe i ponownie wprowadziłem poprawne hasło, zapisałem je i ponownie uruchomiłem phpmyadmin i teraz działa poprawnie
Mohit Sharma
0

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

upewnij się, że hasło jest zgodne z twoim config.inc.php dla użytkownika kontrolnego

również za krótki błąd rozdymki

edytuj /var/lib/phpmyadmin/blowfish_secret.inc.php i wydłuż klucz

Royce
źródło
0

na ubuntu 18.04 w etc/phpmyadmin/config.inc.php komentarzu cały blok

Opcjonalnie: użytkownik dla zaawansowanych funkcji

boaz
źródło
-1

Po zainstalowaniu XAMPP dzisiaj zdecydowałem się użyć innego domyślnego portu dla mysql, co było okropne. Upewnij się, że dodałeś te linie do phpMyAdmin config.inc.php:

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

$cfg['Servers'][$i]['port'] = 'port';`
David
źródło