Ho visto prima, dove un utente mysql accede tramite php e un altro no. A volte l'utente funziona anche dalla riga di comando ma non da php.
È sempre stato quello che Emil sta facendo due. Un utente mysql è in realtà una coppia utente/host. quindi gli utenti megadots @ localhost e gli utenti megadots @ mycoolhost sono elencati nella tabella mysql.user come due record separati.
Se è possibile accedere dalla riga di comando, eseguire questa query.
SELECT user, host FROM mysql.user
si dovrebbe vedere l'elenco completo degli utenti e dei loro host.
se si riconosce l'utente phpMyAdmin che sta funzionando, guardare la colonna host che è probabilmente l'host che si desidera utilizzare.
per ripristinare l'host eseguire queste query (! Fare attenzione a fare questo il vostro lavoro con il tavolo privilages per l'intera installazione mysql)
update mysql.user set host = 'hostname'
where user = 'username' and host = 'oldhostname';
flush privileges;
Se si vede un record con il nome utente e% come l'ospite che avrà la priorità su tutto il resto, se ci sono più record per l'utente e% come host per uno di essi, è possibile che il nome utente con% come host abbia la password sbagliata e non importa quante volte si resetta username @ password di localhost non è valido perché verrà confrontato con il nome utente @% all'accesso.
fonte
2009-03-21 00:26:59
Come hai concesso il privilegio? Il problema in questo caso non è il codice php, ma sul lato mysql. L'istruzione connect è corretta. –