This happens because the user you connect as when using SQLyog does not have privileges enough. The same error would occur with any client installed on same machine as SQLyog.
Command line will typically use the user ‘root’@’localhost and remote clients (like SQLyog) ‘root’@’%’ or ‘root’@’some_specific_host’. They are different users in MySQL and may have different privileges. Most likely the remote user does not have the GRANT option. Please simply connect with SQLyog and execute “SHOW GRANTS;”. If it read like “GRANT ALL ON *.* TO ‘root’@’%'” (and not “GRANT ALL ON *.* TO ‘root’@’%’ WITH GRANT OPTION“), the remote user cannot change privileges for any user. You will need to execute (as ‘root’@’localhost’ – what means that you wll need to do this in command lne or another cleint running on the server – “GRANT ALL ON *.* TO ‘root’@’%’ WITH GRANT OPTION;” in order to create a remote root user as powerfull as the localhost root user.
Besides, what you are asking here is not a SQLyog issue. it isaout fndamental unerstand of privileges in MySQL . Refer MySQL documentatiion – in particular this page: http://dev.mysql.com/doc/refman/5.5/en/account-names.html