Thursday, August 4, 2011

mac – mysql does not connect on localhost but connect’s on 127.0.0.1

his issue came to me after i got “Can’t connect to local MySQL server through socket ‘/var/mysql/mysql.sock’” on a mysql connection on php on a fresh installed mac – php connect’s correctly to 127.0.0.1 , but does not connect to localhost .

On a mac the default mysql socket is ‘/private/tmp/mysql.sock‘ and not ‘/var/mysql/mysql.sock’, you can confirm it by using $ locate mysql.sock on a Terminal.

So basically you have to change the php default connection socket to mysql to ‘/private/tmp/mysql.sock‘ . To do this you have to edit your php.ini – probably located at ‘/private/etc/php.ini‘ – via:

* $ sudo nano /private/etc/php.ini
* ctrl+w (where is) “mysql.default_socket“
* alter to “mysql.default_socket = /private/tmp/mysql.sock”
* crtl+x followed by y and enter to save php.ini
* $ sudo httpd -k restart to restart Apache 2

Retry connecting to mysql localhost on php – should be working :)

Update:
if you use mysqli you also must set “mysqli.default_socket = /private/tmp/mysql.sock” on php.ini;

from: http://techtrouts.com/mac-mysql-does-not-connect-on-localhost-but-connects-on-127001/

No comments: