1. 程式人生 > >Init.d的作用以及如何配置服務自啟動(mysql踩坑集錦)

Init.d的作用以及如何配置服務自啟動(mysql踩坑集錦)

我用的第三種方法安裝的,這些坑困住了我2天,真心煩,好在都解決了。

坑1:第一個錯誤應該是報的  mysqld: Can't create directory '/usr/local/mysql/data/' 

這問題是我自己把mysql目錄裝在了別的目錄,沒有安裝在/usr/local下面,他完全認不出來了,更不會自己建立。

另外這個data資料夾如果沒有的話,需要你自己手動建立。

坑2:是我自己的基礎問題

以上錯誤都是由於我不理解init.d的作用,這些服務的名字根本不存在自然無法找不到,也無法執行。

簡單來說它裡面放的是一些系統級別的指令碼(服務),需要root許可權去執行。

所以我們需要把mysql.server的指令碼複製過來,順便改名叫mysqld。

#複製服務檔案到/etc/init.d
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

然後就可以使用此命令啟動/關閉 mysql:

/etc/init.d/mysqld start

/etc/init.d/mysqld stop

但是下面這種方式更方便,也是我們把指令碼放到Init.d的目的:

service mysqld start|stop

解釋下mysqld:它就是服務端的守護程式,你可以把它理解為服務端。

所以我們才把mysql.server這個指令碼改成mysqld的名字,其實一個意思。

而mysql就是指命令列工具,可以理解為一個客戶端。

最後,既然是系統級的服務,必然要配置自啟動,有兩種方法:

第一種.圖形化介面的sysv-rc-conf,用起來很方便。

安裝sysv-rc-conf

sudo apt-get install sysv-rc-conf

啟動sysv-rc-conf

sudo sysv-rc-conf

按空格鍵出現X,然後按Q退出。重啟即可。

執行級別說明:S表示開機後就會執行的服務0表示關機 6表示重啟 1表示單使用者模式2-5表示多使用者模式 。

第二種方式:也挺簡單

/etc/rc.local 

在這個指令碼中,把手動啟動的命令敲進去,它幫你開機自動執行。