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;
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