Remote Connection to MySQL Database

February 1, 2019 4.1k views
MySQL Ubuntu 16.04

I am attempting to connect, remotely, to the MySQL server created on my Droplet. However, every time I attempt to connect, I get the error of "Can't connect to MySQL server on 'xxx.xxx.xxx.xxx'(10060)" and I can't find a solution to my issue, no matter how much I look around.

Netstat -ntl | grep 3306:

tcp6      0      0   :::3306            :::*            LISTEN

/etc/mysql/mysql.conf.d/mysql.cnf

#skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address       = 127.0.0.1

SELECT user, host FROM mysql.user;

| UserName | % |

SHOW GRANTS FOR 'UserName'@'%';

| Grants for UserName@% |
| GRANT ALL PRIVILEGES ON *.* TO 'UserName'@'%' |

sudo ufw status

To                                        Action                    From
--                                          ------                       ----
3306                                   ALLOW                  Anywhere
3306/tcp                            ALLOW                   Anywhere
3306 (v6)                           ALLOW                   Anywhere (v6)
3306/tcp (v6)                     ALLOW                   Anywhere (v6)

I'm new to all of this, so if there's some information which would help you help me then please let me know!

1 Answer
aha MOD February 1, 2019
Accepted Answer

Take a read through Allowing remote access to MySQL

Start by changing the bind address to 0.0.0.0 instead of just commenting it out, restart mysql and try connecting.

Please note, though, that JUST setting bind-address to 0.0.0.0 is insecure as it allows connections to your server from any IP address..

Whether that works or not, take a read through this tutorial for more best practices and tips: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-remote-database-to-optimize-site-performance-with-mysql-on-ubuntu-18-04

by Brian Boucheron
by Mark Drake
This guide will walk you through the process of configuring a remote MySQL database server that your website or application can connect to. It uses WordPress as a working example of something that can connect to the MySQL backend remotely, but the technique is widely applicable to any application backed by MySQL.
  • Thank you so much! That document, and a few of the documents referenced within it were so very helpful, I've gotten it working now thanks to you!

Have another answer? Share your knowledge.