Unable to connect to remote MySQL Server in Digital Ocean
I am trying to connect to a remote MySQL server 5.7 installed on Ubuntu 16.04 from my workstation.
Here is the error i am getting:
2003 - Can't connect to MySQL server on '18.104.22.168' (10061)
To make it work I followed the following steps.
1) GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY 'my_password’ WITH GRANT OPTION;
2) flush privileges;
3) sudo /etc/init.d/mysql restart
Some forums recommends commenting line starts with “bind-address” on my.cnf which resides in /etc/mysql/my.cnf. The problem is there is no such line on my installation.
# # The MySQL database server configuration file. # # You can copy this to one of: # - "/etc/mysql/my.cnf" to set global options, # - "~/.my.cnf" to set user-specific options. # # One can use all long options that the program supports. # Run program with --help to get a list of available options and with # --print-defaults to see which it would actually understand and use. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html # # * IMPORTANT: Additional settings that can override those from this file! # The files must end with '.cnf', otherwise they'll be ignored. # !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/
I also tried to open ports on firewall using the following commands.
sudo ufw allow 3306/tcp sudo service ufw restart
But still stuck with the same problem.
Update: To make MySQL to listen to all interfaces i added bind-address=0.0.0.0 to my.cnf file. Now MySQL is not even restarting and throws the following error.
demo@ubuntu:~$ sudo /etc/init.d/mysql restart
[....] Restarting mysql (via systemctl): mysql.serviceJob for mysql.service failed because the control process exited with error code.
See “systemctl status mysql.service” and “journalctl -xe” for details.