Восстановление пароля

Открывем 2 консоли и в одной запускаем сервекр без привелегий, а в другой выполняем вход в БД пользователем root.

console 1:

$ service mysql stop
$ /usr/bin/mysqld_safe --skip-grant-tables --user=mysql
$ /etc/init.d/mysql restart

console 2:

$ mysql -u root
$ UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
$ FLUSH PRIVILEGES;
$ EXIT;
$ pkill -9 mysql

Если пользователь отсутствует

$ mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO root@localhost;
mysql> GRANT USAGE ON *.* TO root@localhost;

Если пользователь debian-sys-maint отсутствует

Если запущен mysqld --skip-grant-tables

shell> mysql --user=root mysql
mysql> INSERT INTO user VALUES('localhost','root', PASSWORD('password'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',1000,1000,1000,1000,'','','N','N');
mysql> INSERT INTO user SET Host='localhost', User='root', Reload_priv='Y', Process_priv='Y';
mysql> INSERT INTO user (Host,User,Password) VALUES('localhost','root','');
mysql> FLUSH PRIVILEGES;