mysql.sock文件:

mysql有两种连接方式:

  1. TCP/IP
  2. socket

server和client在同一台服务器(host),并且使用localhost进行链接的时候,就会使用socket作为通讯协议的载体来进行连接,它比tcp快。也就是:为主机名为localhost建立的MySQL连接,该连接过程通过一个套接字文件mysql.sock实现的。所以该文件被删后,用localhost用户是连接不到MySQL服务器的。

如果出现:
Can't connect to local MySQL server through socket '/tmp/mysql.sock'

  • 查看下该文件是否存在,或者运行mysql.server start或者/usr/local/Cellar/mysql/5.7.12/support-file/mysql.start[你的安装目录里的support-file]再查看一下该文件是否存在
  • 假如/tmp/mysql.sock不存在,必须建立一条tcp/ip连接,即使用127.0.0.1而不是localhost作为-h的参数去连接MySQL服务器,如:mysqladmin -h 127.0.0.1 -u root -p shutdown,强制地建立一条tcp/ip连接,关闭MySQL服务器,再重新以localhost为主机名启动MySQL服务器,它就会重新创建一个套接字文件。
  • 假如/tmp/mysql.sock存在,查看一下mysqld的运行状态mysqld status启动它,查看是否是权限问题ls -laF /usr/local/var/mysql/[安装的datadir]如果非host则修改权限sudo chown -R mysql[或者hostname] /usr/local/var/mysql/ 然后再重启一下mysql, 如果还不起作用可以修改/etc/my.cnf 看[mysqld]下的socket路径socket=/usr/local/var/mysql/mysql.sock,重启mysql

mysql.sock.lock这个文件是用来检测是否已经安装的

lsof -i:3306查看端口 kill -9 PID杀掉进程