MYSQL makes a difference between local and remote users.
GRANT <some privileges> TO '<username>' ON <database>.<table> ...
Will only grant access local user that talk to mysql via sockets
GRANT <some privileges> TO '<username>'@'<some ip>' ON <database>.<table> ...
will allow a user connecting via TCP/IP from that ip
GRANT <some privileges> TO '<username>'@'%' ON <database>.<table> ...
will allow user to connect from every
on the mysql shell, you will have to run
FLUSH PRIVILEGES
to make changes done with grant effective
As far as cpanel and phpmyadmin goes (which cpal uses) , these frameworks do the last step automatically if you add a user.