It would be easier if you would post the results of the query rather than describing what you are seeing.
Where are you connecting from to the mysql server?
Could you please post the results of the select * from mysql.user where user='root'?
Also run: show processlist and post the results.
The issue is that the login root@% which you seem to be using to connect to the mysql server does not have grant rights.
run mysql -h localhost -u root -p
and then try to create the user.
Are you using mysql Administrator? If so, make sure when connecting to use the localhost/127.0.0.1 of the VirtualMachine.