MySQL: Allow both remote AND local connections
In my Ubuntu's /etc/mysql/my.conf
, I have:
bind-address = 192.168.2.20 # My external IP
It works fine from remote, but when I want to connect locally, the app that uses on MySQL says: java.net.ConnectException: Connection refused at com.mysql.jdbc.StandardSocketFactory.connect
.
So when I want to work locally, I change my.cnf
to:
bind-address = 0.0.0.0
And it starts working locally, but then it doesn't work from remote anymore.
How to make MySQL accesible both from remote AND local?
Solution 1:
Just comment out bind-address=
altogether. When you do that, it will bind to all addresses. Also make sure that you don't have skip-networking
enabled in your my.cnf.
Solution 2:
I've JUST got it to work using the command line tools on the server and remotely via php. Along with making sure skip-networking was hashed out (and our firewall rubbish), what I had to do was:
Try the command line tool on the server hosting the db (e.g.
shell> mysql -h localhost -u root -p
then enter password)Make a note of the / path it tries to connect from (ending with .sock)
Go into
my.cnf
and make sure in the[client]
and[mysqld]
sections thatsocket=
contains the path you found in step 2.