今天從ubuntu 下安裝mysql
代碼如下 |
複製代碼 |
apt-get install mysql-server |
啟動的時候發現
service mysql start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql start
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start mysql
start: Job failed to start
各種查資料,折騰了一天
其中一個解釋
現在Ubuntu啟動,關閉服務不能用/etc/rc*.d/init.d/{Service} {start|stop|restart}了,需要用service {Service} {start|stop|restart}。在網上搜尋後發現原因是Ubuntu10.04後引入了upstart來管理自啟動服務。舊的系統管理被稱作SysV,它通過在代表各個run level的目錄裡建立指令碼來控制服務的自動啟動。比如,/etc/rc0.d目錄裡以S開頭的指令碼會被運行在runlevel 0。在這種方式下,如果要屏蔽一個服務,需要把S開頭的那個更名為以K開頭。而所以在rc*.d下的指令碼都連結到/etc/init.d目錄裡。而Upstart採用了完全不同的方式。它要求所有的啟動指令碼,其實是設定檔,建立在/etc/init目錄下,每個服務一個檔案,裡面定義指令碼啟動與關閉的運行層級、條件、事件,等。可以看得出,Upstart要比SysV高明得多,因為SysV啟動是線性、順序的,一個S20的服務必須要等待S19啟動完成才能啟動,如果一個啟動要花很多時間,那麼後面的服務就算完全無關,也必須要等。而在Upstart下,服務的啟動基於事件,而且是並行的,只要事件發生,服務可以並發啟動。這種方式無疑要優越得多,因為它可以充分利用現在電腦多核的特點,大大減少啟動所需的時間。
當時沒看明白,不過此文解釋了ubuntu的升級機制
後來
代碼如下 |
複製代碼 |
apt-get upgrade
|
升級一下系統
然後就好了
代碼如下 |
複製代碼 |
service mysql start |
如果你也遇到相同問題,希望此文能讓你不要再受我的苦。走那麼多彎路。