Can't connect to MySQL server via HTTP/HTTPS

December 3, 2017 1.6k views
DigitalOcean Firewall IPv6 Ubuntu 16.04

I have my app connected to the database and when I try to request info I get this: sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1130, "Host '<router>' is not allowed to connect to this MySQL server").

Also when I connect to my Droplet via SSH I get this: The UFW firewall is enabled. All ports execpt for SSH, HTTP/HTTPS and MySQL
are blocked by default.

How can I change this so my app can connect to the database? I need HTTP/S

1 Answer

Hi,

In addition to allowing port 3306 connections to pass through your firewall, you will also need to configure the MySQL server to listen on the public (or private) network interface so that it can accept external connections. You can do so by editing /etc/mysql/my.cnf, setting bind-address to 0.0.0.0, and restart MySQL.

Exposing your MySQL server publicly is not recommended however. Use SSL connections only, and only allow your app server to connect using ufw.

Have another answer? Share your knowledge.