Mysql 啟動遇到 The server quit without updating PID file (/[FAILED]l/mysql/data/021rjsh216086s.pid)和Attempted to open a previously opened tablespace


  今天在測試服務器做調試的時候,遇到Mysql的啟動問題,好像是PID文件找不到了。

  不科學啊,前幾天還好好的呀,我也沒怎么亂搞啊,然后一通百度,找到了幾個解決辦法。

  1.有可能是已經存在mysql進程,多執行killall mysql,直到顯示 no process killed.

  2.有可能是mysql的data目錄沒有權限,用 chown -R mysql:mysql   /usr/local/mysql/data      和  chmod -R 755 /usr/local/mysql/data 重新賦權。

  3.或者看下/etc/my.cnf里邊有指定data目錄有沒有問題,檢查下配置文件里有沒有錯誤的。

  4.selinux要禁止,看看/etc/selinux/config,要這樣配置SELINUX=disabled.

-----------------------------------------------------------------------------------------------------------------------------------

 

  試了試都不行,重啟還是失敗。於是我就看了下錯誤日志。

  執行 cat /usr/local/mysql/data/021rjsh216086s.err

  

  看到這個錯誤點,原因是無法在 /tmp目錄下創建文件,那么看看 /tmp目錄下的權限大小。

  

  看到這里問題就確定了,果然是權限不夠啊。

  執行 chmod 777 /tmp 就行了。

 -------------------------------------------------------------------------------------------------------------------------

  本來以為將tmp文件夾授權為777后,但發現又出現了新問題。如下圖所失,Error表示orders.idb這個文件打不開了,讀取不到orders的表空間。

  下邊也給解決方法了。

    ①給文件加權限。

    ②將orders.odb這個文件刪除。

    ③vi /etc/my.cof  增加一行      innodb_force_recovery= 1

    經過測試,②③執行均可以啟動數據庫,但是原來的數據,卻有點損失。所以說數據備份很重要。

    但是數據庫設置innodb_force_recovery大於0后,可以對表進行select,create,drop操作,但insert,update或者delete這類操作是不允許的。所以還需要將數據導出來,

    新建庫表,再把數據導入。

 

 參考文章:

  使用innodb_force_recovery解決MySQL崩潰無法重啟問題

  MYSQL啟動后報:ERROR! The server quit without updating PID file錯誤的問題解決

  [真正完美解決]InnoDB: Attempted to open a previously opened tablespace

  Mysql無法啟動 InnoDB: Attempted to open a previously opened tablespace

  mysql innodb啟動失敗無法重啟的處理方法


免責聲明!

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



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