一次mysql的重启失败

本文详细记录了阿里云服务器上MySQL重启失败的解决过程,包括mysql.sock文件缺失及mysqld.pid错误的处理方法,通过创建并设置权限解决了问题。

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

一次mysql的重启失败

近期阿里云一直提示修复漏洞,然后重启了mysql,导致 mysql 无法启动,看到提示

Can't connect to local MySQL server through socket '/tmp/mysql.sock'

是否存在,去目录看,果真不在了,那么只能想法办重新构建一个 mysql.sock 文件了。

解决方式

重新启动 mysql

sudo /etc/init.d/mysql start

提示错误

The server quit without updating PID file (/[FAILED]mysqld/mysqld.pid)

。查看日志文件

cat /var/log/mysqld.log | tail -n 200

发现报错信息为

/usr/local/tools/mysql/bin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory)

发现根本没有 mysqld 这个文件夹,于是新建文件夹,并赋予权限

cd /var/run/
mkdir mysqld
chown -R mysql /var/run/mysqld
chgrp -R mysql /var/run/mysqld

然后启动 mysql

sudo /etc/init.d/mysql start

成功

反思

那么 mysql.sock 是做什么的呢?

mysql.sock 是 mysql 的主机和客户机在同一host上的时候,使用 unix domain socket 做为通讯协议的载体,它比 tcp 快。

Mysql 有两种连接方式:

(1)TCP/IP

(2)socket

对 mysql.sock 来说,其作用是程序与 mysqlserver 处于同一台机器,发起本地连接时可用。

例如你无须定义连接host的具体 IP 得,只要为空或 localhost 就可以。

在此种情况下,即使你改变 mysql 的外部 port 也是一样可能正常连接。

因为你在 my.ini 中或 my.cnf 中改变端口后,mysql.sock 是随每一次 mysql server 启动生成的。已经根据你在更改完 my.cnf 后重启 mysq l时重新生成了一次,信息已跟着变更。

那么对于外部连接,必须是要变更 port 才能连接的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值