8

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?

1

2 Answers 2

12

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.

3
  • Awesome. Glad I could help! Commented Aug 18, 2010 at 2:21
  • I have bind-address commented, no skip-networking, my user is defined as 'test3@%', I can connect with mysql -h 192.168.0.51 -P 3306 -u test3 -D test3 and yet I can't connect with localhost. Commented Jul 14, 2015 at 9:41
  • @Adrien You need to create another user with the same name that can access to localhost Commented Jun 26, 2016 at 12:54
1

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:

  1. Try the command line tool on the server hosting the db (e.g. shell> mysql -h localhost -u root -p then enter password)

  2. Make a note of the / path it tries to connect from (ending with .sock)

  3. Go into my.cnf and make sure in the [client] and [mysqld] sections that socket= contains the path you found in step 2.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.