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