mysql啓動失敗

mysql重啓報錯

錯誤:

ERROR! MySQL server PID file could not be found! 

Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/mysql/run/mysql.pid). 

原因可能有以下幾種:

1.mysql沒有正常關閉

2.第二次在機器上安裝mysql,有殘餘數據影響服務啓動

3.權限問題,可能是/opt/mysql/data/數據目錄沒有權限

解決方案:

1.沒有正常關閉的話,日誌裏會有寫

         [Note] InnoDB: Database was not shutdown normally! 

         [Note] InnoDB: Starting crash recovery.

         [Note] InnoDB: Reading tablespace information from the .ibd files... 

     [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace raildb/base_company_fullname uses space ID: 4 at filepath: ./raildb/base_company_fullname.ibd. Cannot open tablespace mysql/slave_master_info which uses space ID: 4 at filepath: ./mysql/slave_master_info.ibd 

   第一行:提示數據庫沒有正常關閉,第三行,提示正在從.ibd files讀取tablespace information

   error的地方,大概意思就是讀取不到raildb這個庫的tablespace

 解決:vi /etc/my.cof  增加一行      innodb_force_recovery = 1

         然後刪除log裏邊的mysql-bin.index 這個文件

         重啓mysql

2.解決:去mysql的數據目錄/data看看,如果存在mysql-bin.index,刪除掉

3.權限問題不說

可能我的問題比較複雜,首先是機器二次安裝mysql,導致重啓報錯,非正常停止mysql,啓動失敗。

解決方案:刪除/tmp/mysql.sock 文件,重啓MySQL

這裏介紹一下mysql,sock

Mysql有兩種連接方式:

 (1)TCP/IP

  (2)socket

    對mysql.sock來說,其作用是程序與mysqlserver處於同一臺機器,發起本地連接時可用。

    例如你無須定義連接host的具體IP得,只要爲空或localhost就可以。

    在此種情況下,即使你改變mysql的外部port也是一樣可能正常連接。

    因爲你在my.ini中或my.cnf中改變端口後,mysql.sock是隨每一次 mysql server啓動生成的。已經根

    據你在更改完my.cnf後重啓mysql時重新生成了一次,信息已跟着變更。

如果你刪除掉mysql.sock文件以後可能會報

  ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 

  mysql.sock不存在

mysql.sock是一個臨時文件,在mysql啓動時會自動生成,我的服務器未啓動,自然就沒有mysql.sock文件。

在錯誤日誌中,啓動失敗的原因極爲明顯,file ‘./mysql-bin。000004’ not found,failed to open!mysql開啓了bin日誌功能,

到數據庫根目錄查看該文件是存在的,可能是文件權限的問題,因爲/tmp/mysql.sock不存在,用這樣的方法:

      >ln -s /var/lib/mysql/mysql .sock   /tmp/mysql .sock
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章