Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock) in

后端 未结 17 2025
长发绾君心
长发绾君心 2020-11-22 08:27

I\'m trying to connect to my MySQL DB with the Terminal on my Apple (With PHP).

Yesterday it worked fine, and now I suddenly get the error in the title.

The

17条回答
  •  粉色の甜心
    2020-11-22 09:04

    For some reason mysql on OS X gets the locations of the required socket file a bit wrong, but thankfully the solution is as simple as setting up a symbolic link.

    You may have a socket (appearing as a zero length file) as /tmp/mysql.sock or /var/mysql/mysql.sock, but one or more apps is looking in the other location for it. Find out with this command:

    ls -l /tmp/mysql.sock /var/mysql/mysql.sock
    

    Rather than move the socket, edit config files, and have to remember to keep edited files local and away from servers where the paths are correct, simply create a symbolic link so your Mac finds the required socket, even when it's looking in the wrong place!

    If you have /tmp/mysql.sock but no /var/mysql/mysql.sock then...

    cd /var 
    sudo mkdir mysql
    sudo chmod 755 mysql
    cd mysql
    sudo ln -s /tmp/mysql.sock mysql.sock
    

    If you have /var/mysql/mysql.sock but no /tmp/mysql.sock then...

    cd /tmp
    ln -s /var/mysql/mysql.sock mysql.sock
    

    You will need permissions to create the directory and link, so just prefix the commands above with sudo if necessary.

提交回复
热议问题