Ubuntu下出现Mysql error(2002)的解决方法

原创 2010年01月05日 23:50:00

      过了一阵子后,为了写分布式作业,重新使用Mysql时,发现虽然启动成功了,但是连接的时候去出现如下错误
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
根据提示是/var/run/mysqld/mysqld.sock文件不存在。
为什么会这样呢?
    在网上找了找答案,发现每个人说的都不一样,而且mysql.server文件中根本就不存在创建/var/run/mysqld/mysqld.sock文件的语句。
1.解决办法:
    $mysql --help
    根据帮助可以看到,mysql默认使用socket文件/var/run/mysqld/mysqld.sock文件,端口3306来连接mysql服务器。所以我们可以修改默认连接参数来试一试。
    $mysql --socket=/tmp/mysql.sock
那么,怎样知道需要把socket修改为/tmp/mysql.sock呢?
我是根据查看mysql进程得到的消息,使用如下命令:
    $ps aux|grep mysql
    可以看到启动的mysql进程使用了参数--socket=/tmp/mysql.sock --port=3306。所以使用命令:
    $mysql --socket=/tmp/mysql.sock后就能够成功连接上mysql服务器了。

2.追根究底
    根据命令
    $mysql --help
    的输出结果可以看到,mysql会按顺序读取配置文件/etc/my.conf,/etc/mysql/my.conf,/usr/etc/my.con,~/.my.conf
    在/etc/my.conf中可以看到
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
这就是为什么mysql服务器启动后使用的socket是/tmp/mysql.sock
    在/etc/mysql/my.conf中可以看到
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_saft]
socket = /var/run/mysqld/mysqld.sock
[mysqld]
port = 3306
socket = /var/run/mysqld/mysqld.sock
这样,两个文件设置都匹配,导致/etc/mysql/my.conf中的[client]覆盖了/etc/my.conf中的[client]设置,所以连接不正确。最简单的办法是删除这个文件
    $sudo mv /etc/mysql/my.conf /etc/mysql/mysql.conf_backup
    然后再使用默认参数连接mysql服务器就正常了。

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

相关文章推荐

连接mysql出现2002错误

在执行mysql命令的过程中,有时候会碰到如下的错误: stat@Tencent:~> mysqldump -uroot -d mp_yx_stat > mp_yx_stat.sql    mys...

解决Linux MySQL报错ERROR 2002

在Linux安装MySQL有时候会出现[mysql]ERROR 2002 (HY000): Can't connect to local MySQL server through socket '...

mysql异常错误 ERROR 2002

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

mamp pro破解方法

在windows上有phpStudy可以自由切换PHP版本。但是在mac上只能自己手动切,相当麻烦。最近研究了一下,MAMP 可以说是很不错 能自由切换版本,设置虚拟主机支持安装php扩...

mysql错误2002的解决办法 ERROR 2002 (HY000) mysql.sock(2)

mysql安装错误ERROR 2002 (HY000)解决办法 ERROR 2002 (HY000): Can’t connect to local MySQL server through s...

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

今天服务器遇到了一个很熟悉的问题 输入#mysql -u root -p ERROR 2002 (HY000):Cant connect to local MySQL server  随即上网找寻答案...
  • lmss82
  • lmss82
  • 2009-08-05 22:42
  • 152145

在mysql中connection设置和wait-timeout的设置

1>MYSQL中遇到too   many  connections的解决方案 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConne...

服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型

概述前段时间项目要做服务化,所以我比较了现在流行的几大RPC框架的优缺点以及使用场景,最终结合本身项目的实际情况选择了使用dubbox作为rpc基础服务框架。下面就简单介绍一下RPC框架技术选型的过程...

Ubuntu下出现Mysql error(2002)的解决方法

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

CentOS 7.2 部署网站访问日志分析器 - Piwik

一、Piwik简介 Piwik是一个PHP和MySQL的开放源代码的Web统计软件. 它给你一些关于你的网站的实用统计报告,比如网页浏览人数, 访问最多的页面, 搜索引擎关键词等等… Piwik拥...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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