7

I run mysql on OSX, now when I restart my computer it does not create the mysql.sock, meaning that all my connections gives me a error 2002.

anyone knows how to prevent this?

nivanka
  • 1,352
  • 6
  • 23
  • 36

5 Answers5

20

I had this same issue on Snow Leopard, the socket spawns in the wrong location for some reason on OS X.

To get the socket spawning in the correct location: create a new file "my.cnf" in /etc with the following lines:

[mysqld]
socket=/var/mysql/mysql.sock

[client]
socket=/var/mysql/mysql.sock

and restart mysqld: sudo /usr/local/mysql/bin/mysqld_safe

This will force the MySQL socket file to spawn in the proper location, and everything should work normally. Good luck!

DashRantic
  • 1,448
  • 4
  • 19
  • 32
  • 3
    This question is duplicated dozens of times yet yours is the first answer that actually helped me. It deserves more upvotes. – dsimard May 12 '12 at 11:42
  • where is the /etc file? I'm sorry if it's s dumb question but idk what that is! – Nick Res May 31 '12 at 04:09
  • etc is a directory, not a file. It's located under the root ("/") directory (hence "/etc"). – DashRantic Jun 06 '12 at 22:18
  • One additional problem I ran into was that the user that mysql runs as did not have permission to edit /var/mysql/mysql.sock (I think because I created it using sudo), so I had to chmod it before things would work. Actually, MySQL wouldn't even start up until I chmodded it. – Ben Sep 11 '12 at 21:54
  • 1
    mysqld_safe command worked right away... you made my day. thank you – Deepak Feb 07 '19 at 05:31
5

I use Mac OS 10.12 Sierra, I meet the same mysql question. I can find mysql.sock in my file system.

Resolve question method:

1 remove my.cnf

sudo rm -rf /etc/my.cnf

restart your mysql servers

brew services restart mysql

or

sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

you can check it

sudo lost -i tcp:3306

enter image description here

mysql is running ok.

enter image description here

GeekHades
  • 3,028
  • 3
  • 19
  • 15
2

I had that problem on a Linux box once, and I found that the directory (/var/run/mysqld) was not writable by the user mysql runs as. I would check that if I were you.

dj_segfault
  • 11,957
  • 4
  • 29
  • 37
1

I recommend to execute

sudo find / -name "mysql.sock"

to be sure the file is not anywhere.

In my cas I used the command mysql with variant socket in this way

mysql --socket=/var/lib/mysql/mysql.sock
CesareoAguirre
  • 1,557
  • 13
  • 11
0

I've been having trouble in restarting MySQL on a box running Sierra. Every time that I tried to connect after restarting my machine, I would lose the ability to connect to my MySQL instance. Based on this post, I determined that there was, indeed, no my.cnf file in my environment. I followed DashRantic's instructions to force a build of a socket file. It appears to have resolved the problem.

Barrel Roll
  • 811
  • 6
  • 4