Suddenly, after a long, functioning run of the mysql server, all the non-root accounts
went bad, with:
Access denied for user 'non_root_user'@'localhost' (using password: YES)
Authenticating with "non_root_user@stripped" still works ( the bind-address in
my.cnf is mapped to server.ip.address )
Poking around in puzzlement and comparing the current, broken state with the functioning
state (from backup) I discovered that in the broken version there is this extra line in
the information_schema.USER_PRIVILEGES table:
| ''@'localhost' | NULL | USAGE | NO
(Note the null-string user prepended to "@localhost")
Again: the functional, non-broken state does NOT have this entry. Thus, my current theory
is that this line is the culprit. Prior to the failure I had a surge of experimental
installations, installing third-party software that created mysql tables, and can't
clearly retrace everything I did, at this point, to pinpoint the installation that may
have caused it.
Be that as it may...
(1) Is my theory correct?
(2) If that line should not be there...
(a) How do I remove it, properly? I don't have debian-sys-maint privileges to
delete the line. (Or do I?)
(b) Are there other tables, besides USER_PRIVILEGES, that would need to be
mysql Ver 14.14 Distrib 5.1.41, for debian-linux-gnu (i486) using readline 6.1