In my Ubuntu's /etc/mysql/my.conf, I have:

bind-address =  # 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 =

And it starts working locally, but then it doesn't work from remote anymore.

How to make MySQL accesible both from remote AND local?


2 Answers 2


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.

  • Awesome. Glad I could help!
    – EEAA
    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 -P 3306 -u test3 -D test3 and yet I can't connect with localhost.
    – Adrien
    Jul 14, 2015 at 9:41
  • @Adrien You need to create another user with the same name that can access to localhost
    – jedi
    Jun 26, 2016 at 12:54

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.