"Connessione per controluser come definita nella configurazione non riuscita" con phpMyAdmin in XAMPP


127

Ho appena installato XAMPP sul mio computer con Windows XP e viene visualizzato un errore che dice:

Connessione per controluser come definita nella configurazione non riuscita.

Prima di installare XAMPP, avevo installato un database MySQL e aveva una password. Ho modificato e inserito la password in config.inc.php per MySQL e ho riscontrato questo errore:

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

Quando provo ad accedere a index.php, sembra che qualcosa non vada nell'installazione di XAMPP. Cosa posso fare per risolvere questo problema?


19
IMHO questo tipo di domande sono praticamente comuni e molto tempo è sprecato per risolverle. Inoltre, per "portata definita dei problemi", è discutibile se possiamo mettere tale ricerca in "soft. Strumento comunemente usato dai programmatori" o "è un problema pratico e di risposta che è unico per lo sviluppo soft ". Quindi chiedo ai veterani di SO di considerare attentamente questo post prima di contrassegnare" off topic ". Le SO sono diventate una destinazione affidabile e unica per rispondere al problema di programmazione, da parte di persone che lo hanno affrontato e risolto. Quindi sarebbe utile per il programmatore ottenere una risposta esatta qui piuttosto che cercare altrove tale problema.
Dexter,

Risposte:


243
  1. Apri phpMyAdmin in un browser e accedi come root.
  2. Crea un database chiamato phpmyadmin
  3. Crea un utente chiamato pmae imposta "host" sul nome host o sull'indirizzo IP del tuo server Web (se il server Web e MySQL si trovano sullo stesso box localhost), prendi nota della password e concedi al nuovo utente il pieno controllo il phpmyadmindatabase. Si consiglia a questo utente di non avere accesso a niente diverso da questo database.
  4. Vai alla directory di installazione di phpMyAdmin, dove dovresti trovare una sottodirectory chiamata sql.
  5. In sqltroverai un file chiamato create_tables.sql. Aprilo in un editor di testo.
  6. In phpMyAdmin, selezionare il phpmyadmindatabase e fare clic sulla scheda "SQL".
  7. Copia / incolla l'intero testo create_tables.sqlnella casella di testo ed esegui la query.
  8. Apri il config.inc.phpfile nella directory di installazione di phpMyAdmin e aggiungi le seguenti righe (o modifica le impostazioni esistenti se sono già presenti):

    $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. Salva e chiudi il file.

IMPORTANTE : PMA carica la configurazione all'accesso, la valuta e la memorizza nei dati della sessione in modo che il messaggio non scompaia finché non si esegue questa operazione:

  1. Disconnettersi da phpMyAdmin ed accedere nuovamente

Problema risolto.


3
+1 per "disconnettersi e riconnettersi". Ho perso cinque minuti senza rendermi conto che dovevo farlo.
Matthew G,

1
@MatthewG Sì, il file di configurazione viene caricato nella sessione nel punto in cui si accede per ridurre l'I / O del disco, in modo che ^^ si applichi a tutte le modifiche che è possibile apportare al file di configurazione PMA
DaveRandom

14
Per qualche motivo, la mia versione di phpmyadmin ha i nomi delle tabelle come "pma__bookmark" e così via con 2 "caratteri di sottolineatura". Se qualcuno ha lo stesso, allora dovresti modificare di conseguenza "config.inc.php". E a proposito il file di configurazione si trova nella directory "/ etc / phpmyadmin" in Ubuntu
ajaybc

6
Su Ubuntu 14.04 la posizione per create_tables.sql è all'interno di /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz
karlingen

5
Questa è una risposta eccellente (la centesima +da me;)). Tuttavia, non ho trovato l'esempi directory in cui indicato al punto 4. Invece è qui: /usr/share/doc/phpmyadmin/examplese lì ho trovato il file sql compressi: create_tables.sql.gz.
Majid Fouladpour,

134

Se sei arrivato qui e stai usando Debian / Ubuntu (o qualsiasi altra distribuzione basata su dpkg), esegui il seguente comando:

sudo dpkg-reconfigure phpmyadmin

Il pacchetto phpmyadmin contiene lo script per eseguire questa operazione, tutto ciò che serve è un utente con autorizzazioni. sudo non è richiesto se si è connessi come root, ovviamente.

EDIT: potrebbe valere la pena provare a eliminare l'utente phpmyadmin corrente.


2
Questo ha funzionato per me, ho dovuto reinstallare il database richiesto. Grazie. (Ubuntu 12.04)
ino

17
Ho dovuto digitare "pma" invece di "phpmyadmin" per l'utente di controllo durante la configurazione per farlo funzionare.
Hardell,

1
Grazie, mi hai salvato la giornata :) hehe
Jeremy Dicaire,

2
Eliminare prima l' utente 'phpmyadmin' ed eseguire 'sudo dpkg-reconfigure phpmyadmin' dopo aver lavorato per me. Grazie!
bshea,

1
nota: questo cancellerà tutti i server configurati, se presenti.
Raptor,

23

Basta commentare l'intero blocco "Utente per funzionalità avanzate" e "Funzioni avanzate di phpMyAdmin" config.inc.php.


Qualche spiegazione per questo? Come e perché funziona?
Huey,

1
@Ben: a volte è tutto importante;)
striscia

In quali file .... Questo è così poco informativo! Ma tutti capiscono quindi mi sento stupido e incapace di aggiustarlo per perdere due volte!
Jamie Hutber,

2
Sarebbe config.inc.php
Rocoty,

1
Non esiste niente di simile User for advanced features" and "Advanced phpMyAdmin featuresall'internophpmyadmin/config.inc.php
AN

11

Hai recentemente cambiato la password di root di MySQL Server? Se la risposta è SÌ, questa è la causa dell'errore / avviso nella console di phpMyAdmin. Per risolvere il problema, è sufficiente modificare il file config-db.php di phpMyAdmin e impostare la password del database corretta.

La prima risposta è un casino troppo secondo me e la seconda risposta non ha funzionato per me. Così:

Nei server basati su Linux il file si trova di solito in:

/etc/phpmyadmin/config-db.php

o:

/etc/phpMyAdmin/config-db.php

Esempio: (Il mio file sembrava così e ho cambiato l'utente da phpmyadmina admin, il nome utente che ho creato per mantenere il mio database tramite phpmyadmin e ho inserito la password appropriata.

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

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


4

Questo ha funzionato per me con phpmyadmin sotto Ubuntu 16.04:

Ho modificato /etc/phpmyadmin/config.inc.php e modificato le seguenti 2 righe:

$cfg['Servers'][$i]['controluser'] = 'root'; 
$cfg['Servers'][$i]['controlpass'] = 'thepasswordgiventoroot'; 

3

Su Ubunbtu.

Il messaggio di Ben è vicino ma non è la password di root il problema, il problema che ho riscontrato è che avevo creato una password per il database phpmyadmin quando l'ho installato. Questa password non viene portata nell'installazione su Ubuntu quindi la variabile $ dbpass = ''; nel file delle impostazioni del database è vuoto e non la password impostata.

  1. Per verificare di avere la password corretta nella riga di comando, accedi a mysql usando il seguente comando: mysql -u phpmyadmin -p prova una password vuota Ho trovato che ho avuto accesso negato, inserisci di nuovo il comando usando la password che hai impostato durante l'installazione. Se si accede ora sai qual è la password.
  2. Modifica /etc/phpadmin/config-db.php e cambia $ dbpass = ''; to $ dbpass = 'La tua password'; e salva il file.
  3. Modifica /etc/dbconfig-common/phpmyadmin.conf cambia dbc_dbpass = '' ; to dbc_dbpass = 'La tua password'; e salva il file. Chiudi il tuo browser e ricarica ora scoprirai che il messaggio è andato molto lontano.


0

Il problema è che la password dell'utente di controllo PhpMyAdmin (di solito: pma) non corrisponde alla password dell'utente mysql: pma (stesso utente).

Per risolvere il problema, 1. Impostare la password desiderata per l'utente pma qui:

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

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

(dovrebbe essere come sulla linea 32)

Quindi vai su mysql, accedi come root, vai a: (Ho usato phpmyadmin per andare qui)

Database: mysql »Tabella: utente

Modifica l'utente: pma

Seleziona "Password" dall'elenco delle funzioni (colonna di sinistra) e imposta "your_new_phpmyadmin_pass" sulla colonna di destra e premi go.

Riavvia il server mysql.

Ora il messaggio dovrebbe scomparire.


0

Ho semplicemente apportato modifiche al file config.inc.php. Password errata in questo collegamento $ cfg ['Server'] [$ i] ['password'] = 'la tua password'; e ora funziona perfettamente.


si prega di modificare la domanda e aggiungere ulteriori dettagli. Questo è di bassa qualità.
Mathews Sunny,

Quanto sopra è la risoluzione, non ho seguito i passaggi precedenti. Vado semplicemente nella directory config.inc.php e apro questo file config.inc.php nel blocco note e ho cambiato questa riga $ cfg ['Servers'] [$ i] ['password'] = 'your password'
Mohit Sharma,

Ho visto che la password è menzionata non è corretta e ho inserito di nuovo la password corretta e l'ho salvata ed eseguito di nuovo phpmyadmin e ora funziona correttamente
Mohit Sharma

0

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

assicurati che la password corrisponda a config.inc.php per l'utente di controllo

anche per il blowfish errore troppo breve

modifica /var/lib/phpmyadmin/blowfish_secret.inc.php e allunga la chiave


0

su Ubuntu 18.04 nel etc/phpmyadmin/config.inc.php commento tutto il blocco

Opzionale: utente per funzionalità avanzate


-1

Avendo appena installato XAMPP oggi, ho deciso di utilizzare una porta predefinita diversa per mysql, che era orribile. Assicurati di aggiungere queste righe a phpMyAdmin config.inc.php:

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

$cfg['Servers'][$i]['port'] = 'port';`
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.