连接mysql错误:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock

mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

1、检查服务是否启动

2、配置里面的[mysqld]和[client]指定的socket文件不一致,修改/etc/my.conf中的socket文件路径


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

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

默认是没有[client]节的,如果你修改了mysqld的socket配置,就需要把[client]节配置添加上去并设置为和你修改后的[mysqld]节一致,因为[mysqld]和[client]默认的socket都是/var/lib/mysql/mysql.sock

如果在PHP中通过127.0.0.1可以连接mysql ,但通过localhost连接时提示

mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

那么还应该修改php.ini中的配置

mysql.default_socket = /var/lib/mysql/mysql.sock

连接MySQL数据库有两种方式:TCP/IP(一般理解的端口的那种)和Unix套接字(一般叫socket或者sock)。
大部分情况下,可以用localhost代表本机127.0.0.1,但是在MySQL连接时,二者不可混用,而且MySQL中权限设置中localhost与127.0.0.1也是分开设置的。
当设置为127.0.0.1时,系统通过TCP/IP方式连接数据库;当设置为localhost时,系统通过socket方式连接数据库。

解决:首先要看本机MySQL的socket套接字文件在哪里,查看命令是:
    
mysqld --verbose --help | grep socket

mysql.default_socket

原文地址:https://www.cnblogs.com/lbnnbs/p/14371033.html