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——常用命令(掛載)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM