In order to connect remotely you have to have MySQL bind port: 3306 to your machines IP in my.cnf. Then you have to have created the user in both localhost and '%' wildcard and grant permissions on all DB's as such . See below:
path : /etc/mysql/my.cnf
my.cnf
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
Creating the user
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
And granting permissions to the user
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
To get the user list and there permissions in mysql db
mysql> SELECT user, host FROM mysql.user;
+------------+---------------------+
| user | host |
+------------+---------------------+
| adadmin | % |
| tbpmagento | % |
| wpuser_agf | % |
| root | 127.0.0.1 |
| root | ::1 |
| ces | localhost |
| root | localhost |
| tbp | localhost |
| tbpmagento | localhost |
+------------+---------------------+