Première chose, on arrête mysql :

/etc/init.d/mysql stop

Ensuite redémarrez mysql avec l'option skip-grant-tables pour désactiver les logins/pass, et skip-networking pour éviter les connexions TCP/IP. Note : attention lors de cette commande, n'importe quelle personne ce connectant à l'aide des sockets aura un accès total à la base!!!

/usr/sbin/mysqld --skip-grant-tables  --skip-networking --user=root &

Ensuite connectez vous avec le client mysql

mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 330933
Server version: 5.0.38
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql>'

Sélectionnez la base mysql ou sont inscrit les tables des privilèges

mysql> USE mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed

Tapez ensuite la commande suivante en remplaçant "password" par celui souhaité :

mysql> UPDATE user
    -> SET password=password("password")
    -> WHERE user="root";
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

Appliquez les changements de privilèges :

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

Sortez du client mysql:

mysql> exit

Redémarrez le serveur :

/etc/init.d/mysql restart