Linux下Mysql数据库 Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '

原创 2013年12月30日 15:55:11
Mysql数据库安装到Linux的时候会在linux建立一个名为mysqld的服务。
可以使用命令:chkconfig --list ,查看linux系统中所有的服务。

可以看到上图倒数第二行为mysqld服务。
如果此服务不开启,就是mysql服务器没有开启,下面做个试验:

经查询,当前没有mysql进程,mysqld服务没有打开。如下图,将连接不上mysql服务器,这是很自然的,没有打开mysql服务器,就没有生成mysql.sock文件,系统找不到mysql.sock文件。

那么就开启mysqld服务,使用命令:service mysqld start
如下,但是有时候即使打开mysqld服务,还是连不上,如下:
这是由于,mysql数据库由于使用不同方式安装,使得数据库开启时寻找mysql.sock的方式也不同,此处在/export/servers/mysql/mysql.sock下寻找此文件。但这个路径下却没有此文件,所以无法连接。
但实际上mysql.sock文件在开启mysqld服务的时候已经生成了,只是不在/export/servers/mysql/路径下,下面手动查查它在哪里。
使用命令:find / -name mysql.sock
从/目录下查找mysql.sock文件的位置。

发现本机器的mysqld服务开启后,mysql.sock生成到了/export/servers/mysql/tmp/(其他机器可能不是此路径,需要用find命令查),而数据库连接时却到/export/servers/mysql/中去查找,自然是找不到的。
/tmp/mysql.sock是在第一次开启mysqld服务时生成的。
为了能让数据库连接时顺利找到此文件,有如下几种方式:

1.)你可以通过修改/etc/my.cnf文件来修正它,打开文件,可以看到如下的东东: 
  [mysqld] 
  socket=/var/lib/mysql.sock 
  改一下就好了,但也会引起其他的问题,如mysql程序连不上了,再加一点: 
  [mysql] 
  socket=/tmp/mysql.sock 
  或者还可以通过修改php.ini中的配置来使php用其他的mysql.sock来连,这个大家自己去找找
  
2.)创建连接方法:
  ln -s  /export/servers/mysql/mysql.sock  /export/servers/mysql/tmp/mysql.sock 

此时,在/export/servers/mysql中建立了软链接。当然也可以建立/tmp/mysql.sock的软连接。

此时,可以顺利连上mysql服务器了。




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ 解决方法

今天遇到 Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ 这个问题,在网上也找了一些相关的...

关于 Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock的问题

我们在输入命令 mysq -u用户名 -p密码 时,会出现一些链接问题,本文参考网上之后,大概的解决流程,比较详细,希望能给大家一些帮助。...

Linux上mysql登陆错误解决办法ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/

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

用c语言链接MySQL数据库出现Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

这个问题,困扰了我好几天,最后终于解决了。首先,我用find命令找了半天,也只有/tmp/mysql.sock,当时我很崩溃啊,后来看到一篇文章,我忘了地址,让我有感,于是解决了这个问题。 1、在/...

centos下mysql问题记录--ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/

一、关于云主机的mysql最近一次云主机的服务器由于被攻击便打算重装一边mysql,彻底删除相关文件后重新安装,没想到怎么装都会出问题。再启动的时候总是出现ERROR 2002 (HY000): Ca...

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

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '***' (2)   有时候,当我们使...

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

本文摘自:http://blog.csdn.net/lmss82/article/details/4414178 输入 #mysql -u root -p   ERROR 2002 (HY00...

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

今天在ubuntu上连接mysql数据库时,遇到一个小问题  Can't connect to local MySQL server through socket '/var/run/mysqld/m...

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

今天服务器遇到了一个很熟悉的问题 输入 #mysql -u root -p ERROR 2002 (HY000):Can't connect to local MySQL server 随即上网找寻答...

记一次 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock’(2) 排错流程

在linux与unix系统的socket文件是为了建立两个程序之间的连接使用的 , 而在mysql中,当mysql启动成功时,会根据配置文件中设定的路径(如:tmp/mysql.sock),在tmp中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux下Mysql数据库 Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '
举报原因:
原因补充:

(最多只允许输入30个字)