ACPI administration advocacy advocacy advocacy opinion alsa apache apple apt aptitude audio authentication awk bash BIOS boot business cache calendar censorship commandline cron database debian desktop development disk dvd economics emacs email europe exim files firefox firewall flash foss freedom ftp fun git grub hardware hardware html images installation ipod kde kernel keyboard knoppix laptop latex linux locale lockin longlines microsoft minitab mplayer multimedia mysql network nfs openbox openoffice opinion opinion partition pdf perl php politics postgresql printing privacy rant rxvt script scripting scsi security sed server shell siteadmin sitenews sitesoftware skype skype slackware sound spam ssh statistics subversion sudo svk swap t23 t43 terminal text thinkpad thunderbird time timezone ubuntu upgrade users versioncontrol video windows wine wordpress wordprocessing X40 xwindows xwindows youtube
My system had just upgraded to mysql 5.1. I hadn't intended to upgrade. It was just one of those things that happens when you are trying to upgrade one or two packages on a Debian unstable system and find out that everything breaks.
The end result of this breakage was that mysql was uninstalled.
I needed to reinstall it:
aptitute install mysql-server mysql-client
It seemed to work. But if I (as 'root') tried to grant privileges to another user I got that 'access denied' error. What was going on?
The answer seems to be that when mysql was unintentionally uninstalled, it left the existing database files in place and when version 5.1 was installed it started accessing these old, slightly incompatible files. Running:
mysql_upgrade -u root -p
fixed the problem.
Then a second problem presented itself. The maintenance user 'debian-sys-maint' couldn't access the database. This is a fairly common and often discussed problem.
Logging into mysql as the root user:
mysql -u root -p mysql
and granting privileges to 'debian-sys-maint':
GRANT ALL PRIVILEGES on *.* to 'debian-sys-maint'@'localhost' IDENTIFIED BY '<password>';
where <password> is the password listed in /etc/mysql/debian.cnf fixed the problem.
Red Hat Certified Technician & Engineer (RHCT and RHCE) Training Guide and Administrator's Reference