在Linux系统下,MySQL客户端有两种不同的方法连接本地mysqld服务:
-
通过Unix socket文件。这是一个在文件系统中的文件,默认/tmp/mysql.sock。
-
使用TCP/IP连接。TCP/IP需要个网络端口,默认3306。
Unix socket文件比TCP/IP连接速度快,但只能连接客户端所在的同一台服务器上的MySQL。连接MySQL时不指定主机名,或者指定特定的主机名localhost,则使用Unix socket文件连接。
error (2002) Can't connect to ...
错误一般可能是以下原因导致的:
-
MySQL服务未启动。
-
连接使用了错误的Unix socket文件。
-
连接使用了错误的TCP/IP端口号。
原因知道了,排查起来也就简单了。
首先检查服务器上是否有mysqld进程,确定MySQL服务已启动。如果没有这个进程,则说明MySQL服务未启动。Linux系统查看方式如下:
首先检查服务器上是否有mysqld进程,确定MySQL服务已启动。如果没有这个进程,则说明MySQL服务未启动。Linux系统查看方式如下:
$ ps xa | grep mysqld
13974 ? S 0:01 /bin/sh /usr/bin/mysqld_safe
14051 ? Sl 112:17 /opt/mysql/bin/mysqld --base