zoukankan      html  css  js  c++  java
  • Linux文件目录变只读(Read-only file system)导致mysql启动失败

    背景

    今天准备调试一个很久没打开的项目时,页面无法展示信息,经排查是因为数据库停止,查看运行状态发现以下异常。

    Jun 15 15:30:58 sccprocduat10 systemd[1]: Started LSB: start and stop MySQL.
    Jun 15 15:30:59 sccprocduat10 mysqld[52940]: rm: cannot remove ‘/d1/Mysql_kits/dbdata/sccprocduat10.pid’: Read-only file system
    Jun 15 15:30:59 sccprocduat10 mysqld[52940]: 2020-06-15T07:30:59.014993Z mysqld_safe Fatal error: Can't remove the pid file:
    Jun 15 15:30:59 sccprocduat10 mysqld[52940]: /d1/Mysql_kits/dbdata/sccprocduat10.pid.
    Jun 15 15:30:59 sccprocduat10 mysqld[52940]: Please remove the file manually and start /usr/local/mysql/bin/mysqld_safe again;
    Jun 15 15:30:59 sccprocduat10 mysqld[52940]: mysqld daemon not started

    分析

    rm: cannot remove ‘/d1/Mysql_kits/dbdata/sccprocduat10.pid’: Read-only file system

    通过这一句我们可以得知,因为该文件目录是只读状态,mysql无法删除sccprocduat10.pid文件,导致冲突无法启动

    解决方案

    1.查看当前挂载信息

    more /etc/fstab

    cat /proc/mounts

     可以看到当前 /d1 目录挂载的分区,状态是ro,需要重新挂载 。

    2.重新挂载

    取消挂载

    umount /dev/mapper/vgdata-lv_d1
    

    如果发现有提示“device is busy”,使用如下命令找到占用它的那个进程并kill掉

    fuser -m /dev/mapper/vgdata-lv_d1 ##将会显示使用这个模块的pid
    fuser -mk /dev/mapper/vgdata-lv_d1 ##将会直接kill那个pid

     如果这里使用fuser命令报错,解决方案

    -bash: fuser: command not found 
    yum install psmisc 

    再次挂载

    mount /dev/mapper/vgdata-lv_d1 /d1

    3.测试

    挂载成功之后重新启动mysql,查看状态,如下表示启动成功。

    参考:

    linux常见故障:linux 文件系统变只读

    fuser命令详解

    Linux——常用命令(挂载)

  • 相关阅读:
    华为交换机配置命令总结
    Linux 系统启动项修复
    Linux菜鸟成长日记 ( Linux 下的 ftp 文件传输协议 )
    Linux 查看用户命令
    linux 查看过滤命令命令
    Linux篇---ftp服务器的搭建
    linux挂载详解
    园区IP地址规划(非常详细)
    Linux创建、删除文件和文件夹命令
    CentOs 7 安装 Xampp
  • 原文地址:https://www.cnblogs.com/sueyyyy/p/13141160.html
Copyright © 2011-2022 走看看