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?
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!