In order to connect remotely you have to have MySQL bind port: 3306 to your machines IP in /etc/mysql/mysql.conf.d/mysqld.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:
Replace xxx with your IP Address (normally 0.0.0.0)
bind-address= xxx.xxx.xxx.xxx
then
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
Then
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
Depending on your OS you may have to open port 3306 to allow remote connections.
restart mysql service:
sudo systemctl restart mysql