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

2023-05-16

欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯!

有时候,当我们使用“mysql”、“mysqladmin”、“mysqldump”等命令管理数据库时,服务器抛出类似如下错误:

 

一、错误现场还原:


下面我们通过三种方式来连接,然后观察提示的错误信息:
 

  • 1、直接使用“mysql”命令,不带主机名参数;
  • 2、使用带了主机名“localhost”参数的“mysql -h localhost”命令;
  • 3、使用带了主机名“127.0.0.1”参数的“mysql -h 127.0.0.1”命令。

 

1、[root@lam7 opt]# mysql

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


2、[root@lam7 opt]# mysql -h localhost

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


[root@lam7 opt]# mysql -h 127.0.0.1  (用此方法是可以进入到MariaDB ,可以进入之后忽略此问题)
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 244
Server version: 10.1.19-MariaDB Source distribution

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

3、[root@lam7 opt]# mysql -h 127.0.0.1 (PS:有些用户也会出现此问题)

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

通过上面实验可以看出,前面两种方式都能产生标题中的错误,而第三种方式连接是不会产生标题中的错误的(第三种方式这里产生的是由于密码问题拒绝访问的错误信息)

 

二、错误产生原因解析:


   这是由于我们连接数据库使用的主机名参数为“localhost”,或者未使用主机名参数、服务器默认使用“localhost”做为主机名。 使用主机名参数为“localhost”连接mysql服务端时,mysql客户端会认为是连接本机,所以会尝试以socket文件方式进行连接(socket文件连接方式,比“ip:端口”方式效率更高),这时根据配置文件“/etc/mysql.cnf”的路径,未找到相应的socket文件,就会引发此错误。


三、修复故障前准备:



1、看mysql服务是否在运行:


  由于“socket”文件是由mysql服务运行时创建的,如果提示“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '***' (2)”,找不到“socket”文件,我们首先要确认的是mysql服务是否正在运行。

#1:端口是否打开

[root@lam7 opt]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 57436 mysql 17u IPv6 160456 0t0 TCP *:mysql (LISTEN)

#2:mysqld服务是否正在运行(小七这边用的是centos7,所以会提示使用“/bin/systemctl status mysqld.service”)

[root@lam7 opt]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
mysqld.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)

#3:如果mariaDB,同样方法查服务是否正在运行:

[root@lam7 opt]# service mariadb status
Redirecting to /bin/systemctl status mariadb.service
mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled)
Active: inactive (dead)

#4mysqld服务是否正在运行(此现状是mysql服务正常运行)

[root@lam7 opt]# service mariadb status
Redirecting to /bin/systemctl status mariadb.service
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
Active: active (running) since 二 2016-11-22 20:09:01 CST; 10min ago

2、确定“socket”文件正确位置:


  确定mysql服务正常运行后,产生此错误的原因只剩下“socket”文件路径不正确了,我们可以使用“find”命令或者“lsof”命令来确定socket文件的正确路径:

[root@lam7 opt]# lsof -c mysqld|grep sock$
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
mysqld 57436 mysql 18u unix 0xffff88000b55f440 0t0 160457 /opt/lampp/var/mysql/mysql.sock

[root@lam7 opt]# find / -name '*.sock'
/storage/db/mysql/mysql.sock

 

四、故障解决方法:


解决方案一:


  修改“/etc/my.cnf”配置文件,在/etc/php.ini文件中"[MySQL]"项下找到"mysql.default_socket",并设置其值指向正确的mysql服务socket文件即可,  在配置文件中添加“[client]”选项和“[mysql]”选项,并使用这两个选项下的“socket”参数值,与“[mysqld]”选项下的“socket”参数值,指向的socket文件路径完全一致。如下: 

[mysqld]
datadir=/storage/db/mysql
socket=/storage/db/mysql/mysql.sock
...省略n行

[client]
default-character-set=utf8
socket=/storage/db/mysql/mysql.sock

[mysql]
default-character-set=utf8
socket=/storage/db/mysql/mysql.sock

修改完后,重启mysqld服务,即可解决此问题。

 

解决方案二:(夜白是用此方法解决的问题)


  使用“ln -s /storage/db/mysql/mysql.sock /var/lib/mysql/mysql.sock”命令,将正确的socket文件位置,软链接到提示错误的socket文件路径位置,即可解决此问题:

[root@lam7 opt]# ls /var/lib/mysql/mysql.sock
ls: 无法访问/var/lib/mysql/mysql.sock: 没有那个文件或目录

[root@lam7 opt]# ln -s /storage/db/mysql/mysql.sock /var/lib/mysql/mysql.sock
[root@lam7 opt]# ls /var/lib/mysql/mysql.sock
/var/lib/mysql/mysql.sock

这边讲述了mysql提供的“mysql”、“mysqldump”、“mysqladmin”等命令提示“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '***' (2)”的解决方法,如果需要解决“php”、“perl”、“python”等脚本语言提示此错误的问题

版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

 

转载来源:https://yq.aliyun.com/articles/606781

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • MySQL之2003错误的解决方法

    今天装了MySQL 结果发现到了晚上打开Command Line Client是已输入密码就错误 然后出现一个error2003瞬间窗口关闭 后来找了一下发现是没有开启MySQL server的原因 解决方法 在命令行输入net start
  • SQLSTATE=08S01通讯连接失败

    导致此错误的原因是连接池已经耗尽 所以在连接数据库时要记得关闭连接 防止连接用完
  • TypeError: Invalid attempt to spread non-iterable instance.

    这种错误一般是延展运算符使用出了错误 例如在一个对象前面用了延展运算符 let obj 因为obj 是一个对象 所以就会报上图的错误 let arr obj name 1
  • STM32学习心得三十二:CAN通信基础知识、原理、配置及实验

    记录一下 方便以后翻阅 主要内容 1 CAN通信基础知识 2 STM32 CAN控制器简介 3 相关实验代码解读 参考资料 STM32中文参考手册 V10 第22章 控制器局域网 bxCAN 实验功能 CAN实验需要两个开发板 系统启动后
  • CAN 为什么需要收发器

    在RTL代码中集成了两个CAN node 打算直接连接将两个node的Rx和Tx对接 发现两个CAN Node无法通信 询问技术支持后才知道必须要收发器 那为什么一定需要收发器呢 除了转换单端的CAN信号用于不同的传输 收发器也会将CANT
  • Canoe 安装流程

    硬件 VN5620 软件 CANoe V15 0 软件 Vector License Client 6 2 驱动 Vector Driver Setup license 购买硬件时 vector会分配 参考文档 First Steps to
  • CAN总线的报文分析(三)

    系列文章目录 文章目录 系列文章目录 前言 一 数据帧 最常用 1 帧起始 2 仲裁段 3 控制段 4 数据段 5 CRC段 6 ACK段 7 帧结束 二 远程帧 三 错误帧 四 过载帧 五 帧间隔 总结 前言 CAN总线上的节点发送数据都
  • python中用pickle打开文件报错:EOFError: Ran out of input

    用pickle dump 保存文件之后如果不关闭文件就会出现此错误 f open test pkl wb pickle dump dict f f close 后面添加关闭就不会报错
  • sql重难点

    SQL总结 语法部分 1 exists和in的区别 where exists select x from employees e where e department id d department id where department
  • 提示 需要 Oracle 客户端软件 8.1.7 或更高版本 解决方案

    一 问题 1 使用第三方接口连接Oracle数据库 程序内调用接口提示 需要 Oracle 客户端软件 8 1 7 或更高版本 网上看了很多答案 依然不起效果 在公司前辈指点下 终得以找到解决办法 2 数据库 Oracle 11g 二 解决
  • CAN协议详解-01

    CAN 是控制器局域网络 Controller Area Network 的简称 它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的 并最终成为国际标准 ISO11519以及ISO11898 是国际上应用最广泛的现场总线之一 差
  • 难懂?这样理解SPI与CAN很简单!

    难懂 这样理解SPI与CAN很简单 什么是串行通讯 为什么仍需使用串行通讯 SPI与CAN SPI 接口特点 CAN现场总线特点 什么是串行通讯 在正式进入主题前 我么先来介绍一下什么叫做 串行通信 串行通信是计算机的一种数据传输通信方式
  • pytorch----Target 2 is out of bounds

    问题 多分类网络加了两层全连接后最后输出1类 计算loss时报错Target N is out of bounds 其中的N是正在处理的数据输入的标签 即第几类 是一个 0 类数 1 的整数 最后输出1类与输入的target不符就会报错 解
  • Tomcat中404/500 错误,自定义错误页面

    Tomcat中404 500 错误 自定义错误页面 当服务器出现404 500错误时候希望能够给用户友好的现实界面 只需要在项目的web xml中添加一些配置
  • error: “自定义函数XXX” must take exactly one argument

    主要问题在于 类里面的重载的二元运算符时 只需要一个参数 另一个参数由this指针传入 这里如果需要传入两个参数 需要放到类外定义 声明友元 访问私有数据和函数 如下 class myTask public myTask int a int
  • 错误码:events.js:141 throw er; // Unhandled ‘error’ event—解决办法

    错误码 events js 141 throw er Unhandled error event 解决办法 具体错误信息 dev events js 141 throw er Unhandled error event Error list
  • Conversion to Dalvik format failed with error

    Conversion to Dalvik format failed with error 1解决方法 第一种情况包导入错误 点击工程 gt build path gt libraries gt 选中android1 x 或者android
  • 功放诊断测试

    1 切换trace显示时间模式 Toggle time mode 2 测seedkey 需要加载seednkey dll 3 功能寻址和物理寻址切换
  • Node.js 静态文件服务器逻辑(使用 Connect 中间件)

    假设我有以下文件系统结构 app Main application folder app js Server JS file ran by node js public Folder containing files for public
  • 如何在 MATLAB 中对连接的点进行聚类?

    想象一下 我们有很多点 其中一些点连接在一起 我们想要将它们聚类 请看下图 如果我们有 连接矩阵 点 我们如何将它们聚类为两组 连接点组 ConnectivityMatrix 1 2 1 3 2 4 2 3 2 1 3 1 3 2 3 4

随机推荐

  • 硬盘安装Debian7(Wheezy)以及初级配置

    引子 xff1a 记得本科二年级的时候开始在Redhat Enterprise 5 下折腾嵌入式 xff0c 然后在开源社区的影响下迷恋fedora和它的激进气质 然后的然后 xff0c 逐渐觉得数学和算法才是王道 xff0c 准备在一个机
  • CMake 的常用命令

    目录 0 CMake常用的命令或函数 xff1a 1 定义项目 project 2 多个目录 add subdirectory 3 常用命令 add executable add library 4 常用命令 改变最终目标文件输出位置 5
  • ❤️geoserver集群部署❤️(geoserver、jms集群部署 + redis、tomcat实现session + nginx负载均衡)

    由于条件原因 xff0c 我是在同一台服务器上利用了三个tomcat配置geoserver集群 xff08 多台服务器配置基本上差不多 xff09 为了后面好区分将三个tomcat分别命名为tomcat geo1 xff0c tomcat
  • ISBN从10位升为13位,执行日期为2007年1月1日

    国际标准化组织 ISO 日前发布了新版的国际标准图书编号标准 ISBN 最新发布的ISO 2108 信息和文件 国际标准图书编号 xff0c 规定新的13位数的国际标准图书编号的执行日期为2007年1月1日 国际标准图书编号 标准对全球的图
  • antd 时间类组件的国际化 locale 设置不生效 解决方案汇总

    antd 时间类组件的国际化 locale 设置不生效 xff0c 踩坑之路和解决办法 问题 如图所示 xff0c antd 时间类组件中英文混合显示 xff1a 初始配置代码如下 xff1a span class token keywor
  • 【CCF 201809-3】元素选择器

    思路 处理每一行 xff1a 每一行都处理为一个结构体 xff0c 包含3个属性 xff1a 级别 xff08 rank xff09 元素名称 xff08 element xff09 id名称 级别 61 点的数量 2 元素名称 amp i
  • 无需上架,接入穿山甲广告和广点通广告 sdk

    我们都知道广告是商业流量变现最重要的方式之一 xff0c 所以基本所有的游戏或者app都会接入广告sdk 而我们都知道穿山甲广告sdk和广点通广告sdk是国内收益相对比较高的 xff0c 但是想接入穿山甲广告sdk 你的游戏或者app必须上
  • JavaScript基础之缓存机制:HTML5离线缓存

    浏览器的缓存机制 xff0c 多种多样 xff0c 离线缓存是其中之一 xff0c 这也是为了更好的用户体验 xff0c 性能优化的重要一步 我们来讲讲这个离线缓存 什么是HTML5离线缓存 xff1f 离线缓存 xff08 Applica
  • IDEA 调试部署 Web-INF/classes下面不生成class文件

    IDEA 调试部署 WEB INF classes下面不生成class文件 原因 xff1a 编译版本 1 8 或者其他版本 xff0c 没有设置 异常 xff1a at javax management remote rmi RMICon
  • Macbook 终端Terminal下如何查看文件生成日期和修改日期

    有时候在用vim命令修改配置文件时 xff0c 不确定是否被修改 xff0c 为了与旧版本比较 xff0c 最好查一下文件生成和修改日期 xff0c 方法如下 xff1a span class pln style margin 0px pa
  • 仿微信地图定位列表

    gitbub源代码链接 xff1a https github com MinLee6 LMMapLocationList 首先按照百度配置要求配置开发环境 1 在AppDelegate mm中设置百度定位的key BOOL applicat
  • FreeBSD zfs安装bhyve跑虚拟机

    FreeBSD zfs文件系统下跑bhyve虚拟机 xff0c 使用简单且稳定高效 xff0c 今天新装一个n3450的小主机 xff08 省电 xff09 xff0c 此简单记录下vm bhyve工具的使用 1 安装 a xff0c 更改
  • vmware下unbuntu虚拟机网络启动后过几分掉线原因

    我vmware用的是17 01 build 21139696版本 xff0c ubuntu使用的是16 lts版本 xff0c 总是开机或挂起恢复后过一段时间网络就掉线 xff0c 但网络的上下两个箭头符号却是正常的 xff0c 并未显示掉
  • 联想 ubuntu14.04无线网卡被禁用的解决办法

    新人在学习Linux时 xff0c 一般会选择安装ubuntu系统 xff0c 但是很多笔记本都会出现安装系统后无限网卡被禁用的问题 xff0c 这种情况的原因我认为并不是无线网卡的驱动没有安装 xff0c 而是ubuntu系统驱动的某个地
  • 序列切片

    序列切片 切片 切片就是指对操作对象 截取 其中一部分的操作 字符串 列表 元祖 有序序列 都支持切片操作 基本语法 顾头不顾尾 序列名称 span class token punctuation span 开始位置下标 span clas
  • 阿里云领取免费2H2G云服务器&证书分享(一):Apsara Clouder云计算专项技能认证:云服务器ECS入门

    这个证书是你领服务器一个月内要考的 xff0c 内容也不难 新老用户都能领 xff0c 要求是有学生认证 当然这个证书是独立的 xff0c 你也可以不认证直接考 点击这个链接 阿里云飞天计划 跳转到阿里云飞天计划 领的服务器如果想不到要做什
  • 卷积神经网络的旋转不变性理解

    卷积神经网络本身的设计对旋转不变性没有进行专门的考虑 xff0c 只不过max pooling可以稍微补偿一下这个功能 xff0c 只是角度变化太大 xff0c 可能会作用不大 xff0c 但因为max pooling并不是为此而设计的 x
  • VS code + Win10 Linux子系统(Ubuntu)开发ESP32

    Windows开发ESP32 最近在研究EPS32 xff0c 但是和STM32之类的单片机不同 xff0c 国内资料大多是在arduino上的简单修改 xff0c 想开发底层硬件比较困难 xff1b 而官方提供的eclipse集成环境体积
  • malloc和calloc的区别

    malloc和calloc的区别有两点 xff1a 两个函数的参数不一样 malloc只有1个参数 xff0c 而calloc有两个参数内存分配后初始化不一样 calloc会把分配的内存全部初始化为0 xff0c 而malloc没有初始化操
  • ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

    欢迎关注大数据和人工智能技术文章发布的微信公众号 xff1a 清研学堂 xff0c 在这里你可以学到夜白 xff08 作者笔名 xff09 精心整理的笔记 xff0c 让我们每天进步一点点 xff0c 让优秀成为一种习惯 xff01 有时候