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?

Nicolas Raoul
  • 1,314
  • 7
  • 22
  • 43
  • possible duplicate of [MySQL: Bind to more than one IP address?](http://serverfault.com/questions/139323/mysql-bind-to-more-than-one-ip-address) – EEAA Aug 18 '10 at 02:06

2 Answers2

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.

EEAA
  • 108,414
  • 18
  • 172
  • 242
  • Awesome. Glad I could help! – EEAA Aug 18 '10 at 02: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`. – Adrien Jul 14 '15 at 09:41
  • @Adrien You need to create another user with the same name that can access to localhost – jedi Jun 26 '16 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.

Scott Pack
  • 14,717
  • 10
  • 51
  • 83
Dave Perry
  • 11
  • 1