Ciao a tutti, ho un grave problema.
Ho un'applicazione che fa uso di tanti DB e di conseguenza tanti (migliaia) di utenti. Quindi per me è ESSENZIALE poter fare il backup e il restore anche degli utenti, è impensabile reinserirli tutti.
Per fare questo faccio il backup del DB "mysql" e di "information_schema" (anche se credo che quest'ultimo non serva). Effettuo correttamente il ripristino di entrambi.
Gli utenti sembrano essere ripristinati correttamente, e da phpMyAdmin vedo che sono stati ripristinati correttamente anche i privilegi di tutti gli utenti sui singoli database. Se però provo a fare il login da client o da phpMyAdmin mi dà ACCESSO NEGATO. L'unico utente che continua a funzionare è root.
Se entro in phpMyAdmin come root e provo a cambiare la password di uno di questi utenti mi dà questo errore:
La query che phpMyAdmin genera automaticamente è SET PASSWORD 'utente'@'localhost' ecc eccCodice PHP:
#1133 - Can't find any matching row in the user table
Se cerco 'utente' nella tabella USER invece lo trovo! Ma è come se MySQL non lo trovasse. Se elimino l'utente e lo ricreo con lo stesso identico nome tutto torna a funzionare.
Questo succede con qualsiasi server MySQL. Ho provato a reinstallare completamente l'ambiente di test, ho provato su un server Windows, Linux, su macchine virtuali. Il problema sembra proprio essere di MySQL e non dei DB specifici o della macchina.
Ho provato a creare un ambiente di test con nomi di db e nomi di utenti tutti SENZA caratteri speciali, come per esempio l'underscore, pensando che il motivo fosse quello, ma niente.
Uso le ultime versioni, mysql 5.0.51 e apache 2.2