You first need to make MySQL forget the current credentials. This can only be done by the SuperUser or the user mysqld runs as, because the daemon must be stopped, which requires sending it a kill(1) signal (don't use -9!!). The PID is found in the .pid file normally found in the MySQL database directory:
# kill `cat /path/to/mysql/datadirectory/hostname.pid`
Now you can restart mysqld with the --skip-grant-tables option, in order to able able set a new password. There are two alternative ways to set it: either the mysqladmin tool, by way of
$ mysqladmin -u root password 'mynewpassword' $ mysqladmin -h hostname flush-privileges
or using the mysql client:
$ mysql -u root mysql mysql> UPDATE user SET Password=PASSWORD('mynewpassword') WHERE User='root' ; mysql> FLUSH PRIVILEGES ;
You should now be able to connect using the new password. Test this!
One final step remains: stop mysqld and restart it normally.
In some configurations, MySQL can log all database activity to a binary log file (usually in /var/lib/mysql). If you have a busy site this can grow quite large. The recommended management solution in the MySQL manual is to remove binary log files you no longer want. They suggest removing files that are older than 3 days. To remove all binary log files issue RESET MASTER;
Your disk runneth over. Probably /tmp. Go clear it out.