MySQL登录报错 Can’t connect to local MySQL server through socket

文章目录整体说明一、问题背景二、问题现象三、问题分析3.1、登录方式3.2、两种方式适用情况3.3、报错出现原因3.4、Socket文件查找方式四、解决方案五、最终解决摘要: MySQL登录报错 Can’t conne

文章目录

  • 整体说明
  • 一、问题背景
  • 二、问题现象
  • 三、问题分析
    • 3.1、登录方式
    • 3.2、两种方式适用情况
    • 3.3、报错出现原因
    • 3.4、Socket文件查找方式
  • 四、解决方案
  • 五、最终解决

摘要: MySQL登录报错 Can’t connect to local MySQL server through socket

关键词: MySQL、登录、报错、socket、解决办法

整体说明

在使用MySQL的时候,出现这个报错,整理了一下解决思路,大致如下:

一、问题背景

工作中需要登录生产环境,查看MySQL表数据生成情况,由于需要登录跳板机,只能沟使用机器使用 MySQL 客户端进行连接

二、问题现象

登录进跳板机,然后连接客户端,出现如下报错:

无法登录进数据库

三、问题分析

3.1、登录方式

  • MySQL 两种登录方式

    • TCP/IP连接

      • 通过网络协议通信,需要指定主机(IP或域名)和端口。
      • 示例:mysql -h 127.0.0.1 -P 3306 -u user -p
      • 适用于远程或本地网络通信。
    • Socket连接

      • 基于文件系统的本地进程间通信(无需网络协议),通过.sock文件实现。
      • 示例:mysql -u user -p --socket=/path/to/mysql.sock
      • 仅限本地使用,性能更高且更安全

3.2、两种方式适用情况

  • 推荐使用 Socket 的情况

    1. 服务与客户端部署在同一台机器(如 Web 应用和数据库同机)。
    2. 高频短连接操作(如 PHP-FPM 进程频繁连接 MySQL)。
    3. 对延迟敏感的应用(如实时数据处理、金融交易系统)。
    4. 需要严格限制访问来源的场景(如仅允许本机的特定进程访问数据库)。
  • 必须使用 TCP/IP 的情况

    1. 服务与客户端跨机器通信。
    2. 需要通过代理或负载均衡器连接。
    3. 使用某些仅支持 TCP/IP 协议的中间件或工具。

3.3、报错出现原因

回到我们的问题上来,这时我们可以知道,我们连接的数据库使用的是 Socket 方式连接的,

但是 Socket 并不在默认的位置 /tmp/mysql.sock,所以就报错了。

这时我们又面临一个问题,怎么找到这个文件。

3.4、Socket文件查找方式

  • 进程查找

    通过找到 MySQL 服务,然后找到配置文件,最后找到 sock 文件位置

    ps -ef | grep mysqld
    

    执行结果如下:

    然后查看 – defaults-file 文件

    cat ***/23306/run/23306f
    

    执行结果如下:

    这样就能找到 .scok 文件路径

  • 全局查找

    如果没法找到,就使用全局查找

    find / -type s -name "*.sock"
    

    查找结果如下:

    这样也能找到 .scok 文件路径

四、解决方案

使用 socket 语法登录

mysql -uadminuser -p -S ***/23306/run/23306.sock

五、最终解决

最终可以进入MySQL数据库,结果如下:

发布者:admin,转转请注明出处:http://www.yc00.com/web/1755026772a5228344.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信