过了一阵子后,为了写分布式作业,重新使用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服务器就正常了。

【转】Ubuntu下出现Mysql error(2002)的解决方法的更多相关文章

  1. Linux 下一个 Mysql error 2002 错误解决

    Linux 下一个 Mysql error 2002 错误解决     首先查看 /etc/rc.d/init.d/mysqld status 查看mysql它已开始.     假设启动的的话,先将数 ...

  2. Ubuntu下Firefox无法播放视频的解决方法

    Ubuntu为Firefox安装Adobe Flash Player 解决方法(解决火狐浏览器安装了三个flash插件中的第二个或者第三个插件而无法安装第一个adobe flash插件的方法):在新立 ...

  3. Windows下一个MySQL有些错误的解决方法

    1.无论是什么提示.我们有一个直接看错误日志.由于它描述了最具体描述错误日志. 于MySQL安装文件夹中找到 my.ini简介 看日志保存路径 2. 我的错误是[ERROR] Fatal error: ...

  4. CMD下查询Mysql中文乱码的解决方法

    我的MySQL是默认utf8编码的,所建数据库也是设置utf8编码,使用程序可以新增中文数据,在cmd中使用SQL语句新增数据则报类似Incorrect string value: '\xB2\xE2 ...

  5. windows下忘记mysql的root密码解决方法(图文)

    在windows下忘记mysql的root密码对于很对新手来说,也是会经常遇到的,我也刚好遇到啦,参考网上的解决办法,自己又整理啦一下. 1.首先需要查看mysql的服务是否启动. 打开cmd窗口,输 ...

  6. MySQL ERROR 1044 (42000) 解决方法

    在Terminal中输入 mysql 进入到数据库命令行,然后直接: CREATE DATABASE IF NOT EXISTS yuntu; 结果出现如下错误: ERROR 1044 (42000) ...

  7. 我的Android进阶之旅------>Ubuntu下不能识别Android设备的解决方法

    Bus 001 Device 006: ID 1b20:0c81 MStar Semiconductor, Inc.      今天不知道Ubuntu发了什么疯,昨天还用的好好的,今天就突然不能识别我 ...

  8. ubuntu下vi不能正常使用的解决方法

    现象 ubuntu中vi在编辑状态下方向键不能用,还有回格键不能删除等我们平时习惯的一些键都不能使用. 原因 ubuntu预装的是vim tiny版本,需要的是vim full版本. 方案 $sudo ...

  9. Ubuntu下U盘变成只读的解决方法

    首先执行命令: tail -f /var/log/syslog 然后插入有问题的U盘,tail会打印一些log: Jan :: zkw- kernel: [-: new high-speed USB ...

随机推荐

  1. 修改Typora的快捷键【markdown软件】

    修改Typora的快捷键 魔芋:Typora是一款不错的编写markdowm的软件,推荐使用. 魔芋:修改这个文件conf.user.json   "keyBinding": { ...

  2. 使用百度siteapp开发网站的App-(IOS和Android版本)

    介绍 之前写了个把百度云作文网站文件服务器.一些园友的评论不错.不过我似乎把意思弄错了!  我用的百度云的SVN环境! 现在不少人都做web开发.不管你是什么语言编写的(jsp,php,asp.net ...

  3. Jupyter Notebook与Jupyterhub的安装与配置

    Jupyter Notebook是一个很好用的交互环境,Jupyterhub则在此基础上实现了多用户的管理.最近配置这个环境的时候也遇到了一些坑,想想自己疯狂百度的过程,在此把自己的完整安装配置流程记 ...

  4. 第001弹:Java 中创建对象的4种方式

    Java 是面向对象的语言,不可避免的,“对象”这个概念是 Java 语言的核心部分,这里来简单讨论一下在 Java 中创建一般对象的方法. 总结下来有以下4种创建对象的方法: 使用 new 关键字调 ...

  5. java面试题之osi七层网络模型,五层网络模型,每层分别有哪些协议(阿里面试题)

    OSI七层网络模型 TCP/IP五层网络模型 对应网络协议 应用层 应用层 HTTP.TFTP.FTP.NFS.WAIS.SMTP 表示层 应用层 Telnet.Rlogin.SNMP.Gopher ...

  6. 记录Spring Boot大坑一个,在bean中如果有@Test单元测试,不会注入成功

    记录Spring Boot大坑一个,在bean中如果有@Test单元测试,不会注入成功 记录Spring Boot大坑一个,在bean中如果有@Test单元测试,不会注入成功 记录Spring Boo ...

  7. django 报错 no such table: auth_user

    需要执行 python3 manage.py makemigrations python3 manage.py migrate 参考:http://arrayoverflow.com/question ...

  8. 【BZOJ3529】【SDOI2014】数表 (莫比乌斯反演+树状数组)

    传送门 Description 有一张$n\times m$的数表,其第$i$行第$j$列 $(1≤i≤n,1≤j≤m)$ 的数值为能同时整除$i$和$j$的所有自然数之和.现在给定$a$,计算数表中 ...

  9. 模仿世纪佳缘网站PC端的首页效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 卸载重安firefox

    把firefox完全卸载掉重装: 查看安装的firefox版本: dpkg --get-selections |grep firefox 根据命令结果卸载重装 比如: $ dpkg --get-sel ...