1. 程式人生 > >Starting MySQL...The server quit without updating PID file [失敗]lib/mysql/localhost.localdomain.pid).

Starting MySQL...The server quit without updating PID file [失敗]lib/mysql/localhost.localdomain.pid).

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

重啟了一下伺服器,啟動後就報以下錯誤了:

Starting MySQL...The server quit without updating PID file [失敗]lib/mysql/localhost.localdomain.pid).

糾結了很久沒找到解決辦法,後來突然想到修改了mysql的配置檔案“/usr/my.cnf”

之前配置預設編碼,在配置檔案中添加了“default-character-set=utf8


把這一句刪除了,再啟動mysql就好了。


在解決這個問題過程中找到的比較好的資料,這裡收藏一下:

問題起因:
今天做了一件事情:我在VM 上將一資料庫的資料檔案(/var/lib/mysql整個資料夾)拷貝到另外一臺VM上,然後新的VM 上啟動MYSQL,結果報如下異常:
[[email protected] mysql]# service mysql start
Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).


於是Google之,大部分的答案都是:
1. 註釋/etc/my.cnf裡的skip-federated註釋掉即#skip-federated;
2. my.cnf檔案配置過高,重新定義其中的引數(根據伺服器情況定義);
3. 殺掉mysql_safe和mysqld程序,然後再重啟;
4. 當前日誌檔案過大,超出了my.cnf中定義的大小(預設為64M),刪除日誌檔案再重啟;

5. 其他情況,檢視日誌檔案(我的是localhost.localdomain.err,具體因人而異),然後具體分析;


問題解決:

其中,我查看了日誌內容,如下:

[[email protected] mysql]# less localhost.localdomain.err 
111203 22:09:03 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
^G/usr/sbin/mysqld: File './mysql-bin.index' not found (Errcode: 13)
111203 22:09:03 [ERROR] Aborting

111203 22:09:03 [Note] /usr/sbin/mysqld: Shutdown complete

111203 22:09:03 mysqld_safe mysqld from pid file /var/lib/mysql/localhost.localdomain.pid ended



但是我查看了我的目錄檔案,mysql-bin.index檔案是存在的呀,奇怪:

[[email protected] mysql]# ll
total 49828
-rw-rw----. 1 mysql mysql 35651584 Dec  3 17:55 ibdata1
-rw-rw----. 1 mysql mysql  5242880 Dec  3 17:55 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880 Dec  3 15:45 ib_logfile1
-rw-rw----. 1 mysql root      1376 Dec  3 22:02 localhost.localdomain.err
drwx--x--x. 2 mysql mysql     4096 Dec  3 17:55 mysql
-rw-rw----. 1 mysql mysql  4847020 Dec  3 17:55 mysql-bin.000001
-rw-rw----. 1 mysql mysql     1373 Dec  3 17:56 mysql-bin.000002
-rw-r--r--. 1 root  root        19 Dec  3 15:38 mysql-bin.index
drwx------. 2 mysql mysql     4096 Dec  3 17:55 performance_schema
-rw-r--r--. 1 root  root       116 Nov 25 21:03 RPM_UPGRADE_HISTORY
-rw-r--r--. 1 mysql mysql      116 Nov 25 21:03 RPM_UPGRADE_MARKER-LAST
drwxr-xr-x. 2 mysql mysql     4096 Dec  3 17:55 test

仔細看了下,咦?-rw-r--r--. 1 root  root        19 Dec  3 15:38 mysql-bin.index----難道是許可權不夠?於是將該檔案加了寫許可權,重啟,濤聲依舊!!!噢噢!


難道是編碼問題?難道是....繼續猜測。。。問題還是沒解決,後來我做了一件事情,將mysql-bin.index檔案刪除掉!重啟!!OH!No!!

[[email protected] mysql]# rm -rf mysql-bin.index 
[[email protected] mysql]#  
[[email protected] mysql]# service mysql start
Starting MySQL... SUCCESS! 


就這樣??為什麼呢?至今這個仍然是未解之謎(對我來說),如有知情者請告知:)


補充:

很多時候,我們在做主從同步的時候,將資料庫目錄整體打包拷貝到從機上的時候,重啟也往往會出現類似的問題,解決方法仍然是:

1)給MYSQL資料庫資料目錄許可權:chown -R mysql:mysql 目錄名稱

2)務必保證MYSQL的程序是已經關閉了的;


另外要注意的地方就是:ib_*, mysql-bin-*, *.err(log檔案)以及master-info和relay-info檔案都是可以刪除的,相當於重新初始化資料庫的資料,但是前提是:

1)操作前要先關掉MYSQL的程序;

2)刪掉檔案後要重新啟動MYSQL,如果有異常,請自行檢視日誌找問題,一般都比較好定位和解決。


           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述