CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' WITH GRANT OPTION;
Stop mysqld and restart it with the --skip-grant-tables option.
Connect to the mysqld server with just: mysql (i.e. no -p option, and username may not be required).
Issue the following commands in the mysql client:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
After that, you should be able to run GRANT ALL ON . TO 'root'@'localhost'; and have it work.
https://stackoverflow.com/questions/1709078/how-can-i-restore-the-mysql-root-user-s-full-privileges