本文目錄一覽:
MySQL啟動不了!運行日誌
一般來說,是由於,在my.cnf中關於INNODB的一些配置是被注釋的,在沒有更改的情況下,系統就使用了默認值,這樣,當你把關於innodb的配置選項注釋去掉的時候,就會出現這個報錯!
配置文件中指定了innodb_log_file_size,看看你的數據庫目錄下,日誌文件大小是不是64M,解決辦法可以更改配置文件,也可以刪除現在這個日誌,再啟動mysql這樣它會重新生成這兩個日誌文件。
mysql服務啟動不了,下面是mysql的錯誤日誌
1、注意存儲引擎錯誤
Unknown/unsupported storage engine: InnoDB
2、檢查一下配置文件中關於innodb的參數,如果有skip-innodb注釋掉
3、如果重新設置了innodb_log_file_size之類的,需要刪除幾個ib_logfile,然後重啟數據庫
mysql服務啟動不了,下面是mysql日誌
‘default-character-set=utf8’
這個參數有問題,你這個mysql應該是5.5的高版本,打開my.ini(my.cnf)在[client]和[mysqld]下找到這段參數,然後改成 character-set-server=utf8,重啟
數據庫服務無法啟動,錯誤日誌如下,誰知道怎麼解決
本人還是個菜鳥,下面是我的經驗之談,能解決一些問題,有不對的地方,敬請斧正。
我的是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
各種命令嘗試無效的情況下,我開始了本次最大的收穫—-學會看錯誤日誌。
在錯誤日誌中,啟動失敗的原因極為明顯,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系統。並最終解決問題,很有成就感,我喜歡這種感覺。
希望能對閱讀的你有所幫助,謝謝!~
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/233657.html