mysql沒法啓動問題的解決方案:mysql.sock重啓不自動生成,mysqld_safe啓動報錯

mysql沒法啓動問題的解決方案:mysql.sock重啓不自動生成,mysqld_safe啓動報錯 - superlucky

本人仍是個菜鳥,下面是個人經驗之談,能解決一些問題,有不對的地方,敬請斧正。html

個人是CentOS6.3+MySQL5.1.57。mysql

重啓了一次服務器後, 使用> mysql -u root -p登錄是出現下面的錯誤:linux

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

因而,我檢察mysql狀態:數據庫

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

          顯示stop,未運行。windows

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

          Stopping mysqld: [ OK ]服務器

          MySQL Daemon failed to start.

         Starting mysqld: [ FAILED]socket

       >ps -ef | grep mysql

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

至此,我能夠肯定,mysql沒法啓動。

我開始排錯,首先發現/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文件丟失了。

我看網上有人說 mysql.sock套接字文件 能夠簡單地經過重啓服務器從新建立獲得它,

         >init 6      重啓命令

           重啓後發現錯誤仍是那樣,沒有任何改變,mysql.sock重啓服務器未自動生成。

接下來了解到mysql.sock是一個臨時文件,在mysql啓動時會自動生成,個人服務器未啓動,天然就沒有mysql.sock文件。

我嘗試 安全啓動模式, mysqld_safe試圖經過工做目錄找到服務器和數據庫,但 mysqld_safe仍是失敗。

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

         130802 15:17:11 mysqld ended

各類命令嘗試無效的狀況下,我開始了本次最大的收穫----學會看錯誤日誌。

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

  mysql開啓了bin日誌功能,到數據庫根目錄查看該文件是存在的,多是文件權限的問題。

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

       > mysqld_safe &

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

          Stopping mysqld: [ OK ]

         Starting mysqld: [ OK]

   成功啓動了!~

  此時mysql.sock文件出現了,在/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文件來修正它。

   成功解決了!~

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

俗話說授人以魚不如授人以漁,學會查看日誌,你也能夠方便快捷的解決問題了。

錯誤令人進步,我與這個錯誤鬥爭了四個多小時,對linux的 「一切皆文件」這句話有了更深的瞭解,對我學習文件系統管理(目錄樹)有很大的幫助, 讓個人思惟真正的從windows操做系統轉向成linux系統。並最終解決問題,頗有成就感,我喜歡這種感受。

但願能對閱讀的你有所幫助,謝謝!~

相關文章
相關標籤/搜索