how to enable remote access to a MySQL server on an AZURE virtual machine

I have an AZURE virtual machine with a MySQL server installed on it running ubuntu 13.04. I am trying to remote connect to the MySQL server however get the simple error "Can't connect to MySQL server on {IP}"

I have already done the follow:

* commented out the bind-address within the /etc/mysql/my.cnf
* commented out skip-external-locking within the same my.cnf
* "ufw allow mysql"
* "iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT"
* setup an AZURE endpoint for mysql
* "sudo netstat -lpn | grep 3306" does indeed show mysql LISTENING
* "GRANT ALL ON *.* TO remote@'%' IDENTIFIED BY 'password';
* "GRANT ALL ON *.* TO remote@'localhost' IDENTIFIED BY 'password';
* "/etc/init.d/mysql restart"
* I can connect via SSH tunneling, but not without it
* I have spun up an identical ubuntu 13.04 server on rackspace and SUCCESSFULLY connected using the same procedures outlined here.

NONE of the above works on my azure server however. I thought the creation of an endpoint would work, but no luck. Any help please? Is there something I'm missing entirely?

enter image description here


Solution 1:

The 'official manual' quoted above didnt work for me and seems to set up a ssh tunnel to accomplish this... even after following the guide it still didnt work.

Heres my working solution

For a Ubuntu Azure VM see:

https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-create-lamp-stack/

Specifically the section "Allow remote access to MySQL"

Comment out:

 bind-address = 127.0.0.1 

located at /etc/mysql/my.cnf

run

 sudo service mysql restart

and my remote connections worked --- just make sure port 3306 is open in the azure server portal for your vm!