2012-10-13 13 views
39

Impossibile impostare la password per un utente che utilizza 3.5.2.2 - phpMyAdmin per 5.5.27 - MySQL. Quando si cerca di impostare la password mentre si è collegati sul phpMyAdmin come l'utente, si apre il seguente errore:MySQL Error # 1133 - Non è stata trovata alcuna riga corrispondente nella tabella user

#1133 - Can't find any matching row in the user table 

Quando si accede come root, seguendo password impostata correttamente messaggio appare.

SET PASSWORD FOR 'user'@'%' = PASSWORD('***') 

In entrambi i casi, la password non viene impostata e rimane come è attualmente, vuota.

risposta

5

Si scopre che l'errore è davvero molto vago!

1) La password era impostata durante l'accesso come utente root, poiché stava aggiornando il campo utente/password nella tabella utenti in MySql.

2) Quando si è effettuato l'accesso come utente, la password non stava di fatto cambiando e anche se ce n'era una specificata nella tabella utenti in MySql, il file config.inc.php consentiva l'autenticazione senza password.

Soluzione:

Change seguente valore al false nel config.inc.php.

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

in modo che legga

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

Change ospite dell'utente da Any o % a localhost nella tabella utenti MySql. Questo potrebbe essere facilmente ottenuto tramite la console phpMyAdmin.

Queste due modifiche mi hanno permesso di autenticarmi come utente con la sua password e l'autenticazione non consentita senza password.

Inoltre, ha consentito all'utente di modificare la propria password durante l'accesso come utente.

Sembra che tutte le autorizzazioni e il resto siano state corrette con queste due modifiche.

+0

Questa è ** non ** la soluzione corretta. Si prega di visualizzare [risposta di pdg137] (http://stackoverflow.com/a/17436813/420747), che OP dovrebbe invece contrassegnare come accettato. – buschtoens

77

Ho riscontrato questo errore utilizzando MySQL in un contesto diverso (non all'interno di phpMyAdmin). I comandi GRANT e SET PASSWORD non sono riusciti su un particolare utente esistente, elencato nella tabella mysql.user. Nel mio caso, è stato fissato eseguendo

FLUSH PRIVILEGES; 

Il documentation per questo comando dice

Reloads the privileges from the grant tables in the mysql database.

The server caches information in memory as a result of GRANT and CREATE USER statements. This memory is not released by the corresponding REVOKE and DROP USER statements, so for a server that executes many instances of the statements that cause caching, there will be an increase in memory use. This cached memory can be freed with FLUSH PRIVILEGES.

A quanto pare la cache tabella utente aveva raggiunto uno stato incoerente, che causa questo messaggio di errore strano. Ulteriori informazioni sono disponibili here.

+6

ha fatto il trucco per me dopo aver importato utenti da un backup! – xorinzor

+0

Ho avuto questo problema dopo aver riavviato il database, il comando di scarico ha funzionato. Grazie! – PedroSena

0

Se si utilizza PHPMyAdmin, è necessario accedere come root per poter modificare la password di root. in user put root lasciare la password vuota di cambiare la password.

8

ho incontrato questo problema, ma nel mio caso la password per l'utente 'phpMyAdmin' non corrisponde con il contenuto della /etc/phpmyadmin/config-db.php

Una volta che ho aggiornato la password per l'utente 'phpmyadmin' l'errore è andato via.

Questi sono i passi che ho preso:

  1. Accedere a MySQL come utente root: mysql -uroot -pYOUR_ROOT_PASS
  2. Passare alla db 'mysql': use mysql;
  3. Aggiornare la password per l'utente 'phpMyAdmin': UPDATE mysql.user SET Password=PASSWORD('YOUR_PASS_HERE') WHERE User='phpmyadmin' AND Host='localhost';
  4. privilegi Flush: FLUSH PRIVILEGES;

FATTO !! Ha funzionato per me.

+1

È stato il comando "FLUSH PRIVILEGES" che ha funzionato per me. Grazie. – dAm2K

-1

Nel mio caso ho appena ribattezzato l'utente Mysql che stava per cambiare la sua password su uno strumento db basato su gui (DbVisualizer). Il terminale in cui ho provato a 'SET PASSWORD' non funzionava (MySQL Error # 1133).

Tuttavia this answer ha funzionato per me, anche dopo aver modificato la password il comando "IMPOSTA PASSWORD" non ha funzionato ancora.

Dopo aver chiuso il terminale e aperto uno nuovo, il comando ha funzionato molto bene.

0

concedere tutto su newdb. * A newuser @ localhost identificato da 'password';

+0

Sì, ci sono stato – user10089632

1

Questo errore può verificarsi se si tenta di concedere privilegi per un utente non esistente.

Non mi è chiaro cosa consideri MySQL un utente non esistente. Ma sospetto che MySQL consideri che un utente esiste se può essere trovato con un nome (colonna User) e un host (colonna Host) nella tabella user.

Se si cerca di concedere i privilegi a un utente che si trova con il suo nome (colonna User), ma non con il suo nome e conduttore (colonne User e Host), e non fornisce una password, poi si verifica l'errore.

Ad esempio, l'istruzione seguente genera l'errore:

grant all privileges on mydb.* to [email protected]'xxx.xxx.xxx.xxx'; 

Questo perché, nessuna password viene specificata, MySQL non può creare un nuovo utente, e cerca quindi di trovare un utente esistente. Ma nessun utente con il nome myuser e l'host xxx.xxx.xxx.xxx può essere trovato nella tabella user.

Mentre fornire una password, permette la dichiarazione che deve essere eseguito con successo:

grant all privileges on mydb.* to [email protected]'xxx.xxx.xxx.xxx' identified by 'mypassword'; 

Assicurarsi di riutilizzare la stessa password di tale utente si considera esiste, se quel nuovo "utente MySQL" è la stessa applicazione" utente".

completare l'operazione irrigando i privilegi:

flush privileges; 
0

Penso che la risposta è qui ora: https://bugs.mysql.com/bug.php?id=83822

Quindi, si dovrebbe scrivere:

GRANT ALL privilegi mydb * a. [email protected]'xxx.xxx.xxx.xxx 'IDENTIFICATO DA' mypassword ';

e penso che potrebbe essere il lavoro: PASSWORD

SET PER [email protected]'xxx.xxx.xxx.xxx' IDENTIFIED BY 'old_password'= PASSWORD ('new_password');

+0

Quando vi rispondono siete incoraggiati a tentare di spiegare cosa state facendo e perché la soluzione funziona, specialmente quando si tratta di domande di 5 anni. –

Problemi correlati