mysql.sock 找不到了,用find / -name mysql.sock 也找不到

本文介绍了解决Storm集群中从机挂起及Zookeeper日志过大导致的问题。通过查找并删除过大的日志文件,调整临时目录设置等步骤,最终使系统恢复正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当执行一个大任务后,导致mysql启动不了。

 在使用Storm UI查看日志处理情况的时候,发现storm集群中一台从机挂了,于是我登陆了部署那台从机的linux查看,运行jps -m 查看进程运行情况,发现报了一个warning:
Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file:
   /tmp/hsperfdata_work/10700
Try using the -Djava.io.tmpdir= option to select an alternate temp location.

看这个大概的意思是共享内存文件空间不足,于是df查看了使用情况:

Filesystem                                                1K-blocks          Used    Available         Use%    Mounted on
/dev/mapper/VolGroup01-LogVol00  49384248 49384248                  0         100%     /

发现这个目录使用率100%,但是这个只是逻辑卷,具体是由于/tmp目录下,日志文件太多,导致空间被占满了。
然后用

find / -size +100M -exec ls -lh {} \;

查看大小超过100M的文件,发现在zookeeper/中有许多大于100M的日志文件,然后进入该目录,删除一些日志文件,然后重启zookeeper,重启storm,一切恢复正常。

有时候在centos上查看java进程时,会遇到process information unavailable 的情况,如下图:

不同账号之间kill进程时,可能会造成这种现象(比如:deploy用户启动了一个java进程,但是用root用户去kill,虽然杀掉了,但是查看进程时偶尔就会出现)

解决办法:
cd /tmp 进到该目录,然后ls查看下,通常会遇到很多hsperfdata_开头的目录,进入可疑的目录看看,比如

然后把11786这个给 rm -rf 11786 干掉,然后再看进程就消失了

### 关于 MySQL 安装后 `mysql.sock` 文件缺失的解决方案 当 MySQL 安装完成后发现无法通过 `/tmp/mysql.sock` 进行本地连接时,通常是因为 `mysql.sock` 文件未被正确生成或者其路径与预期不符。以下是针对此问题的具体解决措施: #### 1. 验证 `mysqld` 是否正在运行 如果 MySQL 的守护进程 (`mysqld`) 没有正常启动,则不会生成 `mysql.sock` 文件。可以通过以下命令验证服务状态: ```bash ps aux | grep mysqld ``` 如果没有到对应的进程,尝试重新启动 MySQL 服务: ```bash sudo systemctl restart mysql ``` #### 2.实际的 `mysql.sock` 路径 即使 `mysqld` 正常运行,也可能因为默认配置不同而导致 `mysql.sock` 不位于标准位置(如 `/tmp/mysql.sock`)。可以使用以下命令查该文件的实际存储路径: ```bash find / -name "mysql.sock" ``` 常见的可能路径包括但不限于: - `/var/lib/mysql/mysql.sock` - `/usr/local/mysql/data/mysql.sock` - `/var/run/mysqld/mysqld.sock` 一旦定位到实际路径,记录下来以便后续操作。 #### 3. 修改客户端和服务端配置以匹配 `socket` 路径 MySQL 使用两个主要配置文件来定义行为:一个是服务器端配置文件(通常是 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`),另一个是客户端工具使用的配置文件(可能是 `$HOME/.my.cnf` 或全局配置的一部分)。 ##### (a) 编辑服务器端配置文件 打开服务器的主要配置文件,并确认 `[mysqld]` 下是否有如下设置: ```ini [mysqld] socket=/path/to/actual/mysql.sock ``` 将上述路径替换为前面查到的真实路径[^2]。 保存更改后重启 MySQL 服务以应用新配置: ```bash sudo systemctl restart mysql ``` ##### (b) 更新客户端配置 同样,在同一配置文件中的 `[client]` 和 `[mysqladmin]` 部分也需要指定相同的 `socket` 参数: ```ini [client] socket=/path/to/actual/mysql.sock [mysqladmin] socket=/path/to/actual/mysql.sock ``` 再次测试连接功能是否恢复正常。 #### 4. 创建软链接至期望目录 作为临时解决方案,也可以直接创建一个指向真实 `mysql.sock` 文件的符号链接放在 `/tmp/` 中: ```bash ln -s /path/to/actual/mysql.sock /tmp/mysql.sock ``` 这种方法简单快捷,但需注意每次系统重启可能会破坏原有链接关系,因此建议优先调整配置文件实现永久修正。 --- ### 总结 综上所述,处理 `mysql.sock` 文件丢失的关键在于明确当前环境下的确切存放地点,并同步更新相关联的所有程序对其访问方式的认知;要么统一修改成固定的标准形式,要么灵活适应现有布局差异即可达成目标[^1].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值