ERROR! The server quit without updating PID file (/usr/local/mysql/data/centos7.pid).

文章讲述了在MySQL服务器中遇到的启动错误,原因在于datadir变量被设为0导致找不到PID文件。给出了两种解决方案:一是创建软链接,二是修改init.d脚本中的datadir和basedir路径。修改后成功启动了数据库。

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

操作现象:
ERROR! The server quit without updating PID file (/usr/local/mysql/data/centos7.pid).
1、通过mysqld_safe命令启动数据库后,kill掉mysqld_safe,mysqld进程
2、通过service mysqld start启动数据库报错
在这里插入图片描述
原因:
通过分析/etc/init.d/mysqld脚本发现,当basedir和datadir变量的字符串值为0时候,就会设定为basedir=/usr/local/mysql datadir=/usr/local/mysql/data,而pid文件的默认存放位置在datadir目录下,因此当启动时候,无法找到/usr/local/mysql/data目录

处理方法1:
给/usr/local/mysql/data做1个软连接指向到真正的初始化datadir的目录中
ln -snf /mysql_data /usr/local/mysql/data

处理方法2:修改/etc/init.d/mysqld文件内容
sed -i -e ‘s%^datadir=%&/mysql_data%’ -e ‘s%^basedir=%&/usr/local/mysql-8.0.36%’ /etc/init.d/mysql

再次启动数据库,成功!!!!

### 解决MySQL启动时PID文件未更新问题 对于CentOS 7环境中遇到的MySQL服务启动失败且PID文件未能正常更新的问题,通常是因为mysqld进程无法成功写入PID文件所引起的。这可能是由于权限设置不当、路径配置错误或是其他系统级干扰因素造成的。 当尝试启动MySQL服务时,如果发现`/var/run/mysqld/mysqld.pid`文件不存在或未被正确创建,则可以按照如下建议操作: - **确认数据目录与运行参数一致** 确保MySQL配置文件中的datadir选项指向了实际存储数据库文件的位置,并且该位置具有足够的读写权限给mysqld用户[^1]。可以通过编辑`/etc/my.cnf.d/server.cnf`来调整这些设置。 - **检查SELinux状态** 有时安全增强型Linux(SELinux)可能会阻止mysqld访问必要的资源。临时禁用它可以帮助判断是否为此原因造成的影响。执行命令`setenforce 0`可切换至宽容模式;若此动作解决了问题,则需进一步研究如何适当地配置SELinux策略以允许正常的MySQL运作[^2]。 - **验证并修复潜在磁盘空间不足的情况** 缺乏可用磁盘空间也会阻碍mysqld生成新的PID文件。利用df -h指令审查根分区和其他重要挂载点的空间占用情况。必要时清理不必要的文件释放更多空间[^3]。 - **重建软链接** 考虑到可能存在类似`/tmp/mysql.sock`这样的套接字文件丢失的情形,在某些情况下重新建立正确的符号链接能够解决问题。例如,使用命令`ln -s /data/tmp/mysql.sock /tmp/mysql.sock`恢复对原有socket文件的引用关系。 最后一步是重启MySQL服务以应用更改: ```bash systemctl restart mysqld.service ``` 上述措施应当能有效应对大多数因PID文件缺失而导致的服务启动障碍场景。然而,具体环境下的确切解决方案可能还会涉及到更细致的日志分析以及针对特定版本特性的考量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值