mysql user creation with % to host , can only log on from remote host
When connecting to your localhost it's going you use sockets instead of ports to connect.  Those grants need a specific 'localhost' grant.  To use your % grant locally connect specifying you want to connect via TCP

mysql -u user -p --proto=TCP


Further reading