首页 > 数据库 >ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mys

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

时间:2024-04-21 11:22:52浏览次数:32  
标签:socket lib sock mysqld mysql var

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

=====================================================

步骤: 以下可用。

(1)关闭mysql:

service mysqld stop

(2)查看mysql.sock的位置

(base) [root@VM-0-2-centos ~]# locate mysql.sock
/var/lib/mysql/mysql.sock

(3)查看my.cnf的位置
(base) [root@VM-0-2-centos ~]# locate my.cnf
/etc/.my.cnf.swd
/etc/.my.cnf.swk
/etc/.my.cnf.swn
/etc/my.cnf
/etc/my.cnf.d

(4)查看 /etc/my.cnf 的内容
(base) [root@VM-0-2-centos ~]# more /etc/my.cnf
#http:#//dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
#For advice on how to change setting please see
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
skip-grant-tables
# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
(base) [root@VM-0-2-centos ~]#

(5)修改 /etc/my.cnf

vi /etc/my.cnf

(6)添加以下内容:

[client] default-character-set=utf8 socket=/var/lib/mysql/mysql.sock   [mysql] default-character-set=utf8 socket=/var/lib/mysql/mysql.sock  

(7)修改完后,重启mysqld服务

service mysqld start

 

=====================================================

 参考:

原因:

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

修复故障前准备:

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

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

# 1、 端口是否打开 [[email protected] ~]# lsof -i:3306 COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME mysqld  12207 mysql   14u  IPv4  52350      0t0  TCP *:mysql (LISTEN)   # 2、mysqld服务是否正在运行 [[email protected] ~]# service mysqld status mysqld (pid  4717) is running...   # 3、如果mariadb,同样方法查服务是否正在运行: [[email protected] ~]# 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-03 13:47:37 CST; 23min ago

  

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

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

[[email protected] ~]# lsof  -c mysqld|grep sock$ mysqld 4717 mysql 12u unix 0xffff88010a655b80 0t0 77474827 /storage/db/mysql/mysql.sock   [[email protected] ~]# find / -name '*.sock' /storage/db/mysql/mysql.sock

 

解决方法:

解决方案一:

  修改“/etc/my.cnf”配置文件,在配置文件中添加“[client]”选项和“[mysql]”选项,并使用这两个选项下的“socket”参数值,与“[mysqld]”选项下的“socket”参数值,指向的socket文件路径完全一致。如下: 

[mysqld] datadir=/storage/db/mysql socket=/storage/db/mysql/mysql.sock ...省略n行(爱E族)...   [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文件路径位置,即可解决此问题:

[[email protected] ~]# ls /var/lib/mysql/mysql.sock ls: cannot access /var/lib/mysql/mysql.sock: No such file or directory [[email protected] ~]# ln -s /storage/db/mysql/mysql.sock /var/lib/mysql/mysql.sock [[email protected] ~]# ls /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock

 

REF

http://aiezu.com/article/45.html

 

 

标签:socket,lib,sock,mysqld,mysql,var
From: https://www.cnblogs.com/emanlee/p/18021473

相关文章

  • 解决 macOS 下 Python 3.8 安装 mysqlclient 的问题
    环境背景Python版本:3.8macOS版本:14.4(M2芯片)在安装mysqlclient时遇到的问题我在网上找到的方案基本上都是通过brewinstallmysql-connector-c安装、修改mysql_config文件、安装openssl及gcc,这个解决方案对我并没有效果解决方案步骤一:配置环境变量#使用pkg-config......
  • 使用mysqlclient库连接mysql
    使用mysqlclient库连接mysql安装mysqlclient库yuminstallmariadbmariadb-servermariadb-develmariadb-libsluarockslua-develyumgroupinstall"DevelopmentTools"例程#include<iostream>#include<cstdlib>#include<cstdio>#include&......
  • mysql视图的基本用法
    MySQL视图(View)是一种虚拟的表,它基于一个或多个实际表的查询结果构建而成。视图可以像表一样被查询,但实际上它并不存储数据,而是根据定义时指定的查询规则动态生成结果。MySQL视图的基本用法包括创建视图、查询视图、更新视图以及删除视图。以下是MySQL视图的基本用法:创建视图(Crea......
  • mysql存储引擎
    在MySQL中,存储引擎是指负责存储和检索数据的模块,它决定了数据在磁盘上的存储格式以及支持的特性。MySQL支持多种存储引擎,每种存储引擎都有其自身的特点、优势和适用场景。以下是MySQL中常见的两种存储引擎:InnoDB和MyISAM:InnoDB:InnoDB是MySQL的默认存储引擎,它支持事务......
  • mysql 存储过程
    存储过程(StoredProcedure)是一组预编译的SQL语句集合,它被存储在数据库中并可以在需要时被调用执行。存储过程可以接收参数、执行SQL语句、执行控制流程语句(例如IF、LOOP等),并返回结果集或输出参数。以下是存储过程的一些关键特点和用法:封装复杂逻辑:存储过程可以封装复杂的业务逻......
  • MVCC学习圣经:一文穿透MySQL MVCC,吊打面试官
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • vuex结合websocket使用
    1、创建一个store文件夹,并在其中创建store.js文件,结合vuex:importVuefrom'vue'importVuexfrom'vuex'importcommonfrom"../common/common.js";Vue.use(Vuex)conststore=newVuex.Store({state:{/***是否需要强制登录*/......
  • com.alibaba.druid.pool.DataSourceClosedException: dataSource already closed at S
     适用的druid数据库连接池一直有问题,无法连接,但是什么都没改过。排查了数据库(数据库单独连接没问题)、防火墙、IP白名单等步骤后,重启服务器、重启应用后都无法解决。重启应用过程中发现了应用无法正常启动的情况,这点让人觉得很意外,于是想看下现在服务器上运行的jar包情况,命令是......
  • MySQL-05.存储引擎
    C-05.存储引擎为了方便管理,把连接管理,查询缓存,语法解析,查询优化这些不涉及真实数据存储的功能划分为MySQLServer的功能,把真实存取数据的功能划分为存储引擎的功能。所以在MySQLServer完成了查询优化后,只需按照生成的执行计划调用底层存储引擎提供的API,获取到数据后返回给客户端......
  • 【开源】使用Python+Flask+Mysql快速开发一个用户增删改查系统
    项目演示项目本身很简单,增删改查是几乎所有系统的骨架。正所谓万丈高楼平地起,学会了增删改查,航母就指日可待了:),光速入门,直接看演示图:项目地址https://github.com/mudfish/python-flask-user-crudFlask框架介绍说白了就是一个Web框架,能够让你快速开发出Pythonweb应用。简单易......