To give an answer on your question: No it's not safe.
Just to name some security issues:
1: Login
Your login data gets transferred plaintext over the internet you DO NOT want that obviously :)
2: SQL queries
Your queries that you send (and their responses) are send in plain text again you DO NOT want that as one can easily tamper that data.
Furthermore having query results back in plain text which could contain sensitive information is a whole other issue. In case of personal files you could even get sued in some countries for neglecting/ignoring safety guidelines for personal data.
3: SQL port open on the internet is alway an extra attack vector for a potential malicious user. Think of remote mysql server exploits etc.
If you really need a remote connection use SSL.
I've sumarized the steps you need to follow assuming you run a mysql server on linux:
On the mysql-server, generate a mysql ssl certificate:
Gernerate the CA ca private key:
openssl genrsa 4096 > ca-key.pem
Generate the certificate using the key previously created (answer the default questions):
openssl req -sha256 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem
Next create a new private key for the mysql server (again, default questions):
openssl req -sha256 -newkey rsa:4096 -days 730 -nodes -keyout server-key.pem > server-req.pem
Export private key:
openssl rsa -in server-key.pem -out server-key.pem
Create server certificate:
openssl x509 -sha256 -req -in server-req.pem -days 730 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem
Now in your my.cnf (located in /etc/mysql/my.cnf) edit the mysqld section and add the follwoing:
ssl-ca=/etc/mysql/ca-cert.pem
ssl-cert=/etc/mysql/server-cert.pem
ssl-key=/etc/mysql/server-key.pem
restart your mysql service:
service mysql restart
Now you have your mysql server running with server certificates, next we will add a users from a specific address (your remote static ip if possible) so in your mysql console execute the following:
GRANT ALL PRIVILEGES ON 'database'.* TO 'yourremotelogin'@'your.remote.ip.xxx' IDENTIFIED BY 'password' REQUIRE SSL;
FLUSH PRIVILEGES;
Okay so now we have a SSL mysql server which accepts remote connections over SSL from your particular ip, but we still need to generate client certificates:
So, still on the mysql server execute the following:
openssl req -sha256 -newkey rsa:4096 -days 730 -nodes -keyout client-key.pem > client-req.pem
openssl rsa -in client-key.pem -out client-key.pem
openssl x509 -sha256 -req -in client-req.pem -days 730 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > client-cert.pem
Now copy the ca-cert.pem, client-key.pem and client-cert.pem to your remote pc where your mysql workbench is situated.
In mysql workbench open up the Server connection management and edit your existing connection towards your server. In the conenction tab, select the SSL sub-tab and select "use SSL require".
In the fields below select ca-cert.pem for your SSL CA File, cielnt-cert.pem for SSL CERT File and client-key.pem for SSL Key File.
Now if you try to connect you will still be asked for a password (which you defined earlier) but it's over SSL :)
Hope this answer is the answer you were looking for.