MYSQL错误解决:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)-阿里云开发者社区

开发者社区> 天飞> 正文

MYSQL错误解决:ERROR 2002 (HY000): 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 '/var/lib/mysql/mysql.sock' (2)

据说这个问题的原因很多,当然,我自己这个问题我是清楚的,就是mysql.sock的位置所致,一个是PHP要求的,一个是MYSQLD定义的,一个是MY.CONF指定的。。。SO。。。。

暂时不能统一的话,用软链接LN -S命令解决吧。。

 

方案5
     摘要:解决不能通过mysql .sock连接MySQL问题 这个问题主要提示是,不能通过 '/tmp/mysql .sock'连到服务器,而php标准配置正是用过'/tmp/mysql .sock',但是一些mysql 安装方法 将 mysql .sock放在/var/lib/mysql .sock或者其他的什么地方,你可以通过修改/etc/my.cnf文件来修正它,打开文件,可以看到如下的东东:

   [mysql d] 
  socket=/var/lib/mysql .sock 
  改一下就好了,但也会引起其他的问题,如mysql 程序连不上了,再加一点: 
  [mysql 
  socket=/tmp/mysql .sock 
  或者还可以通过修改php.ini中的配置来使php用其他的mysql .sock来连,这个大家自己去找找
  
  或者用这样的方法:
  ln -s /var/lib/mysql /mysql .sock /tmp/mysql .sock

成功了,就是这样ln -s /var/lib/mysql /mysql .sock /tmp/mysql .sock

引自网上同道

~~~~~~~~~~~~~~~

今天服务器遇到了一个很熟悉的问题
输入
#mysql -u root -p
 
ERROR 2002 (HY000):Can't connect to local MySQL server
 
 
随即上网找寻答案
 
根据大家提供的方法我逐一尝试
 
方案1.
 1.#ps -A|grep mysql
   显示类似:
  1829 ?        00:00:00 mysqld_safe
   1876 ?        00:00:31 mysqld
  2.#kill -9 1829
  3.#kill -9 1876
  4.#/etc/init.d/mysql restart
  5.#mysql -u root -p
 
   他的麻烦解决了,我的还没解决!
 
继续找
方案2
先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.
另外看看是不是权限问题.
------------------------------------------------------------------------------------
[root@localhost beinan]#chown -R mysql:mysql /var/lib/mysql
[root@localhost beinan]# /etc/init.d/mysqld start
启动 MySQL: [ 确定 ]
[root@localhost lib]# mysqladmin -uroot password '123456'
[root@localhost lib]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 3 to server version: 4.1.11

Type 'help;' or '/h' for help. Type '/c' to clear the buffe
 
他的也解决了,我的麻烦还在继续,依然继续寻找
 
方案3
问题解决了,竟然是max_connections=1000 他说太多了,然后改成500也说多,无奈删之问题解决了。
 
还是不行
方案4
   
     /var/lib/mysql 所有文件权限 改成mysql.mysql
    
     不行不行
 
方案5
     摘要:解决不能通过mysql .sock连接MySQL问题 这个问题主要提示是,不能通过 '/tmp/mysql .sock'连到服务器,而php标准配置正是用过'/tmp/mysql .sock',但是一些mysql 安装方法 将 mysql .sock放在/var/lib/mysql .sock或者其他的什么地方,你可以通过修改/etc/my.cnf文件来修正它,打开文件,可以看到如下的东东:

   [mysql d] 
socket=/var/lib/mysql .sock 
改一下就好了,但也会引起其他的问题,如mysql 程序连不上了,再加一点: 
[mysql 
socket=/tmp/mysql .sock 
或者还可以通过修改php.ini中的配置来使php用其他的mysql .sock来连,这个大家自己去找找

或者用这样的方法:
ln -s /var/lib/mysql /mysql .sock /tmp/mysql .sock

成功了,就是这样ln -s /var/lib/mysql /mysql .sock /tmp/mysql .sock

OK!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JSP连接MySQL时出现--错误:Access denied for user 'root'@'localhost' (using password: YES)'解决方案
用代码进行用户验证的时候总是出现这个错误,翻译一下,应该是root用户的是权限的问题没有放开。 那就想办法解决一下吧,具体的来说可以有这样的几种方式。 解决方法,首先想到的是先重启一下MySQL服务吧,但是试了一下,发现这并没有什么用。
833 0
.Net FrameWork 4.0中使用EF向数据库插入数据报datatime2类型错误的解决办法
最近用.Net 4.0创建EF的持久层,老是在插入新数据时,报datatime2类型错误。 找了很多资料,都没有得到解决,后来我询问了我的一个同事,Tom 给我解决了这个问题。   由于EF4默认把C#的DateTime类型转换成Sql server2008的datatime2类型,所以2005的数据库不支持,最终导致程序报错。
664 0
+关注
天飞
一个运维老同志
1512
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载