程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql啟動錯誤:mysql.sock丟失

mysql啟動錯誤:mysql.sock丟失

編輯:關於MYSQL數據庫

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

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

      於是,我檢察mysql狀態:

      > /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無法啟動。

      我開始排錯,首先發現/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

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

    mysql啟動錯誤:mysql.sock丟失 三聯

      在錯誤日志中,啟動失敗的原因極為明顯,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系統。並最終解決問題,很有成就感,我喜歡這種感覺。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved