mysql登录的报错Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)

本文详细记录了在Linux环境下遇到的MySQL启动错误2002的解决过程,包括错误信息分析、socket文件冲突处理及服务重启步骤。

image.png

重启后,继续报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)

[root@192 ~]# mysqld
2020-04-27T02:54:10.448733Z 0 [System] [MY-010116] [Server] /app/database/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) starting as process 2296
2020-04-27T02:54:10.815201Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-04-27T02:54:10.816733Z 0 [ERROR] [MY-010270] [Server] Can't start server : Bind on unix socket: Address already in use
2020-04-27T02:54:10.816749Z 0 [ERROR] [MY-010258] [Server] Do you already have another mysqld server running on socket: /tmp/mysql.sock ?
2020-04-27T02:54:10.816761Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-04-27T02:54:12.606929Z 0 [System] [MY-010910] [Server] /app/database/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld: Shutdown complete (mysqld 8.0.11)  MySQL Community Server - GPL.
[root@192 ~]# rm -rf /tmp/mysql.sock
[root@192 ~]# systemctl restart mysqld.service 
[root@192 ~]# mysqld
2020-04-27T02:55:13.040339Z 0 [System] [MY-010116] [Server] /app/database/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) starting as process 2394
2020-04-27T02:55:14.129116Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-04-27T02:55:14.199958Z 0 [System] [MY-010931] [Server] /app/database/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld: ready for connections. Version: '8.0.11'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server - GPL.

解决方法

1.首先删除报错的文件/tmp/mysql.sock,删除之后再次连接。

2.再次尝试mysql或者mysqld进入数据库,此时我的数据库现实如上报错。Do you already have another mysqld server running on socket: /tmp/mysql.sock ?我立刻关闭mysql程序,再次删除这个文件,删除以后,重启mysql窗口卡住,另一个窗口正常工作。

image.png

### 三级标题:MySQL 本地 socket 连接问题的排查与解决 MySQL 报错 `Can't connect to local server through socket '/vdb/mysql/tmp/mysql.sock'` 通常表示客户端尝试通过本地 socket 文件连接 MySQL 服务器时,无法找到或访问该 socket 文件。该问题可能由配置不一致、服务未启动、路径错误或权限问题引起。 MySQL 客户端默认通过 socket 文件 `/tmp/mysql.sock` 或 `/var/run/mysqld/mysqld.sock` 进行本地连接。如果 MySQL 服务器配置了不同的 socket 路径(如 `/vdb/mysql/tmp/mysql.sock`),而客户端未指定正确的路径,或服务器未在该路径下生成 socket 文件,则会导致连接失败[^1]。 检查 MySQL 配置文件(通常为 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`)中的 `socket` 配置项,确保 `[mysqld]` 和 `[client]` 段落下的 `socket` 路径一致。例如: ```ini [mysqld] socket=/vdb/mysql/tmp/mysql.sock [client] socket=/vdb/mysql/tmp/mysql.sock ``` 若 MySQL 服务未运行,也会导致 socket 文件不存在。可通过以下命令检查服务状态并启动服务: ```bash systemctl status mysqld systemctl start mysqld ``` 确认 socket 文件是否存在: ```bash ls -l /vdb/mysql/tmp/mysql.sock ``` 若文件不存在,可能是 MySQL 启动失败或路径配置错误。查看 MySQL 日志文件(通常位于 `/var/log/mysqld.log` 或 `/vdb/mysql/data/` 目录下)以获取启动错误信息。 若 socket 文件存在但权限受限,MySQL 服务可能无法访问该路径。确保 MySQL 用户(如 `mysql:mysql`)对 socket 文件所在目录具有读写权限: ```bash chown -R mysql:mysql /vdb/mysql/tmp chmod -R 755 /vdb/mysql/tmp ``` 客户端连接时可显式指定 socket 路径以绕过默认配置: ```bash mysql -u root -p --socket=/vdb/mysql/tmp/mysql.sock ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿江要努力鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值