If you need for development purposes expose a database remotely, you can do it with the next steps: Edit the file /etc/mysql/my.cnf , and change the binding address to 0.0.0.0 (EDIT: 2019-04-04, you may also update the file /etc/mysql/conf.d/mysql.cnf , for a newer version of MySQL. Thanks for Dawood pointing out.) 1 bind-address = 0.0 .0 .0 then restart MySQL server 1 $ sudo /etc/i nit.d /mysql restart Create a new user for any host in MySQL CREATE USER 'foo'@'%' IDENTIFIED BY 'your-awesome-pass'; # grant privileges to table(s) GRANT ALL PRIVILEGES ON db_name.* TO 'foo'@'%' WITH GRANT OPTION; NOTE: bear in mind that 'foo'@'localhost' & 'foo'@'%' are considered as a different user, you may have 2 different passwords for each of them. Rember this procedure should be only used for development purposes not for production. to check it out, open a terminal and r...