MySQL错误E途锐RO福特Explorer 二零零零 (HY000): Can’t connect to local MySQL server through socket,mysqlhy000

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket
‘/var/run/mysqld/mysqld.sock’解决

MySQL错误ERROR 2002 (HY000): Can’t connect to local MySQL server through socket,mysqlhy000

在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功启动,但在登陆的时候出现了ERROR
2002 (HY000): Can’t connect to local MySQL server through
socket,即无法通过socket连接到mysql服务器,同时提供了socket文件的位置。下面是这个问题的描述与解决办法。

1、故障现象

复制代码 代码如下:

[[email protected]
mysqldata]# mysql -uroot -p123456
Warning: Using a password on the command line interface can be
insecure.
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket
‘/data/mysqldata/mysql.sock’ (111)
#故障环境
[[email protected]
mysqldata]# more /etc/issue
CentOS release 5.9 (Final)
Kernel \r on an \m

2、故障分析

复制代码 代码如下:

#查看mysql实例的状态
[[email protected]
mysqldata]# netstat -ntlp  | grep 3306
tcp        0      0 :::3306                    
:::*                        LISTEN      13001/mysqld
#查看my.cnf关于socket的配置
[[email protected]
mysqldata]# more /etc/my.cnf |grep sock
socket = /tmp/mysql.sock
#由上可知my.cnf中定义的为/tmp目录下,而错误提示为/data/mysqldata/目录下
#也就是说mysqld已经声称了正确的sock文件,但客户端连接还是从初始目录去找sock文件
#下面查看后台日志,有个ERROR,是关于满查询日志的,是由于目录不存在而产生的错误,与当前故障无关
[[email protected]
mysqldata]# more SZDB.err
             …………
2014-10-11 13:17:21 13001 [Note] InnoDB: 5.6.12 started; log sequence
number 1625997
/app/soft/mysql/bin/mysqld: File ‘/log/mysql_logs/slowquery.log’ not
found (Errcode: 2 – No such file or directory)
2014-10-11 13:17:21 13001 [ERROR] Could not use
/log/mysql_logs/slowquery.log for logging (error 2). Turning logging
off for the who
le duration of the MySQL server process. To turn it on again: fix the
cause, shutdown the MySQL server and restart it.
2014-10-11 13:17:21 13001 [Note] Server hostname (bind-address): ‘*’;
port: 3306
2014-10-11 13:17:21 13001 [Note] IPv6 is available.
2014-10-11 13:17:21 13001 [Note]   – ‘::’ resolves to ‘::’;
2014-10-11 13:17:21 13001 [Note] Server socket created on IP: ‘::’.
2014-10-11 13:17:21 13001 [Note] Event Scheduler: Loaded 0 events
2014-10-11 13:17:21 13001 [Note] /app/soft/mysql/bin/mysqld: ready for
connections.
Version: ‘5.6.12-log’  socket: ‘/tmp/mysql.sock’  port: 3306  Source
distribution

3、解决故障

a、通过配置my.cnf mysql选项socket文件位置解决

复制代码 代码如下:

#先停止mysql服务器
[[email protected]
mysqldata]# service mysqld stop
Shutting down MySQL.[  OK  ]
#修改my.cnf,如下
[[email protected]
mysqldata]# vi /etc/my.cnf
[mysql]
no-auto-rehash
socket = /tmp/mysql.sock  #添加该行
#重启mysql服务器
[[email protected]
mysqldata]# service mysqld start
Starting MySQL..[  OK  ]
#再次连接正常
[[email protected]
mysqldata]# mysql -uroot -p
Enter password:
mysql> show variables like ‘version’;
+—————+————+
| Variable_name | Value      |
+—————+————+
| version       | 5.6.12-log |
+—————+————+

b、为socket文件建立链接方式

复制代码 代码如下:

[[email protected]
mysqldata]# ln -s /tmp/mysql.sock /data/mysqldata/mysql.sock
ln: creating symbolic link `/data/mysqldata/mysql.sock’ to
`/tmp/mysql.sock’: File exists
[[email protected]
mysqldata]# rm mysql.sock   
#上面提示文件存在,所以删除之前的mysql.sock文件
[[email protected]
mysqldata]# ln -s /tmp/mysql.sock /data/mysqldata/mysql.sock
[[email protected]
mysqldata]# ls -hltr mysql.sock
lrwxrwxrwx 1 root root 15 Oct 11 14:00 mysql.sock ->
/tmp/mysql.sock
[[email protected]
mysqldata]# mysql -uroot -p
Enter password:
mysql> show variables like ‘socket’;
+—————+—————–+
| Variable_name | Value           |
+—————+—————–+
| socket        | /tmp/mysql.sock |
+—————+—————–+

Can’t connect to local MySQL server through socket解决方法

 

启动mysql 报错: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib

1、先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.
另外看看是不是权限问题.
2、确定你的mysql.sock是不是在那个位置,
mysql -u 你的mysql用户名 -p -S /var/lib/mysql/mysql.sock
3、试试:service mysqld start
 

 

用XAMPP装装好mysql之后,mysql -uroot 连不上,报这个错误:

mysql启动失败:Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysqlsock’ (111)

因为你只安装了mysql客户端,没有安装mysql服务器,所以无法启动mysql
服务。试试命令行下输入:service –status-all
在列出的系统所有服务中,你应该是找不到mysqld项的。解决办法是安装mysql-server
,正常情况下安装完就可以通过:sudo service mysqld
start启动mysql服务。、最好把mysql-devel也安装一下。另外,从你的日志来看你是用普通用户登录系统的,很多命令要加上sudo才能用的,比如上面那条。
 

2002 (HY000): Can’t connect to
local MySQL server through socket,mysqlhy000
在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功…

最近我的ubuntu系统sudo装的数据库出现问题,迫于无奈重装,重装启动后用mysql命令客户端连接,出现如下提示:

 

Ruby代码   

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket
‘/var/run/mysqld/mysqld.sock’ 

[LING mysql]$ <span style=””>mysql -u root -p</span>  

 

  

在mysql的配置文件里,/opt/lampp/etc/my.cnf, 发现了这样的配置:

Enter password:   

 

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket
‘/var/run/mysqld/mysqld.sock’ (2)  

[java] 

 

<span style=”font-size:24px;”># The following options will be
passed to all MySQL clients  

 我的my.cnf如下:

[client]  

Python代码   

#password       = your_password  

[mysqld]  

port            = 3306  

datadir=/var/lib/mysql  

socket          = /opt/lampp/var/mysql/mysql.sock  

<span style=”color: #ff0000; font-size:
x-small;”>socket=/var/lib/mysql/mysql.sock</span>  

  

  

# Here follows entries for some specific programs  

user=mysql