綠色資源網(wǎng):您身邊最放心的安全下載站! 最新軟件|熱門排行|軟件分類|軟件專題|廠商大全

綠色資源網(wǎng)

技術(shù)教程
您的位置:首頁數(shù)據(jù)庫類MySQL → mysql啟動錯誤:mysql.sock丟失,mysqld_safe報錯解決方案

mysql啟動錯誤:mysql.sock丟失,mysqld_safe報錯解決方案

我要評論 2013/08/03 23:12:04 來源:綠色資源網(wǎng) 編輯:m.sonlywya.cn [ ] 評論:0 點擊:594次

我的是CentOS6.3+MySQL5.1.57。重啟了一次服務(wù)器后,使用> mysql -u root -p登陸是出現(xiàn)下面的錯誤:

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

于是,我檢察mysql狀態(tài):

       > /etc/rc.d/init.d/mysqld  status  

          顯示stop,未運行。

       >/etc/rc.d/init.d/mysqld  restart

         Stopping mysqld: [ OK ]

         MySQL Daemon failed to start.

         Starting mysqld: [ FAILED]

       >ps -ef | grep mysql

         root 28221 27474 0 14:18 pts/0 00:00:00 grep mysql   只有這一條

至此,我可以確定,mysql無法啟動。

我開始排錯,首先發(fā)現(xiàn)/tmp/mysql.sock不存在

        >vim /etc/my.cnf

          socket=/var/lib/mysql/mysql .sock

          /var/lib/mysql/mysql .sock同樣不存在

        >find / -name mysql.sock

          顯示為空,未查詢到mysql.sock文件,mysql.sock文件丟失了。

我看網(wǎng)上有人說mysql.sock套接字文件可以簡單地通過重啟服務(wù)器重新創(chuàng)建得到它,

         >init 6      重啟命令

           重啟后發(fā)現(xiàn)錯誤還是那樣,沒有任何改變,mysql.sock重啟服務(wù)器未自動生成。

接下來了解到mysql.sock是一個臨時文件,在mysql啟動時會自動生成,我的服務(wù)器未啟動,自然就沒有mysql.sock文件。

我嘗試安全啟動模式,mysqld_safe試圖通過工作目錄找到服務(wù)器和數(shù)據(jù)庫,但mysqld_safe還是失敗。

       >mysqld_safe &
         Starting mysqld daemon with databases from ....../mysql/var 
         STOPPING server from pid file   .......pid
 

         130802 15:17:11 mysqld ended

各種命令嘗試無效的情況下,我開始了本次最大的收獲----學(xué)會看錯誤日志。

在錯誤日志中,啟動失敗的原因極為明顯,file ‘./mysql-bin。000004’ not found,failed to open!

 mysql開啟了bin日志功能,到數(shù)據(jù)庫根目錄查看該文件是存在的,可能是文件權(quán)限的問題。

       >chown -R mysql:mysql /....../mysql/var

       >mysqld_safe &

       >/etc/rc.d/init.d/mysqld  restart

         Stopping mysqld: [ OK ]

         Starting mysqld: [ OK]

成功啟動了!~

此時mysql.sock文件出現(xiàn)了,在/var/lib/mysql/mysql .sock。如下圖所示,以”s”開頭的文件都是socket文件。

          > mysql -u root -p

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

/tmp/mysql.sock

解決這個錯誤很簡單,因為/tmp/mysql.sock不存在,用這樣的方法:

>ln -s /var/lib/mysql/mysql .sock   /tmp/mysql .sock

以”l”開頭的文件是軟鏈接文件。或者可以通過修改/etc/my.cnf文件來修正它。

成功解決了!~

就是這樣一個問題折騰了我這么久,錯誤日志讓它無所遁形。查看錯誤日志可以明確問題所在,而不是像我之前那樣盲目的找錯。

俗話說授人以魚不如授人以漁,學(xué)會查看日志,你也可以方便快捷的解決問題了。

錯誤使人進步,我與這個錯誤斗爭了四個多小時,對linux的“一切皆文件”這句話有了更深的了解,對我學(xué)習(xí)文件系統(tǒng)管理(目錄樹)有很大的幫助,讓我的思維真正的從windows操作系統(tǒng)轉(zhuǎn)向成linux系統(tǒng)。并最終解決問題,很有成就感,我喜歡這種感覺。

關(guān)鍵詞:mysql

閱讀本文后您有什么感想? 已有 人給出評價!

  • 0 歡迎喜歡
  • 0 白癡
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙視