Root is not allowed to grant privileges on a MySQL database

Solution 1:

You have all privileges for root@% but not the "grant option". In my MySQL installation, where my root account can apply grant, this is the output of "show grants" :

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*some_hash' WITH GRANT OPTION

In MySQL, giving "all privileges" does not include grant. It must be given explicitly.