access denied to non-root@localhost null-string user in USER_PRIVILEGES

2012-12-26 Thread Round Square
Hi all:
 
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_u...@server.ip.address 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 updated/purged

My version:
mysql  Ver 14.14 Distrib 5.1.41, for debian-linux-gnu (i486) using readline 6.1


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql



Re: access denied to non-root@localhost null-string user in USER_PRIVILEGES

2012-12-26 Thread Igor Shevtsov

You mysql.user table might be corrupted.
If you have access to it as a root user, try check table mysql.user, and 
repair table mysql.user if table corruption was detected.
Alternatively, shut down mysql server, cd /var/lib/mysql/mysql (to your 
$datadir/mysql directory) and run

mysqlcheck -r mysql user







On 26/12/12 18:00, Round Square wrote:

Hi all:
  
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_u...@server.ip.address 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 updated/purged

My version:
mysql  Ver 14.14 Distrib 5.1.41, for debian-linux-gnu (i486) using readline 6.1