How To Investigate/Restore MySQL Permissions? MySQL ERROR 1045 (28000): Access denied for user
- by Recc
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Debian.
mysqld is listening on 3306 supposedly
Telnet to 3306 works
Also tried binding it specifically yo localhost and then 127.0.0.1 which made no difference
However:
# netstat -ln | grep mysql
unix 2 [ ACC ] STREAM LISTENING 78993 /var/run/mysqld/mysqld.sock
# mysql -P3306 -ptest
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Things I've tried:
dpkg-reconfigure mysql-server-5.1 Doesn't help
http://www.debian-administration.org/articles/442 Doesn't help
This command (source):
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
Doesn't help, in fact:
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
So might the user be deleted? Extremely unlikely as all this started after packages update a colleague did and some separate services started screwing around but my colleague said he removed the offenders.
Theres more:
while # mysqld_safe --skip-grant-tables is running one can access the data tables, only with the valid passwords! So there's users and some authentication takes place hence the 0 rows affected above.
Can the privileges tables be damaged somehow and how can I recreate/restore them when my only way of getting a mysql console is to skip them?
Can I spare my reinstall of MySQL? Either way I did get a dump of the DBs now that I could get in with the above mode.