標籤:
在Mac下安裝好了mysql, 想設定成開機自啟動,原來以為和一般的linux系統一樣,也是在rc.d這樣目錄放置啟動指令碼。在網上查了一些資料,發現蘋果應該是把它完全封閉了,只能利用Mac系統裡的Launchctl來做這個事。
Launchctl其實就是寫一個*.plist的檔案,它的作用和linux裡的Crontab的作用是一樣的。下面的代碼是我寫的一個com.mysql.plist:
Plist代碼
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.mysql</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
</dict>
</plist>
然後將這個檔案放在/Library/LaunchDaemons下,關於這種Mac下Launch目錄,有好幾個,作用各有一些不同,網上有好多介紹,這裡就不重複說了(隨便BS一下,那些抄襲別人文章的,從來不自己寫,copy一下,往自己的blog裡一貼,以至於google一下,各種連結,都是一樣的內容)。
最後調用一下launchctl命令,載入這個plist,
Sh代碼
- launchctl load -w com.mysql.plist
如果命令執行無錯誤,重新啟動mac,mysql已經可以自啟動了。
在這個過程中,有幾個注意的地方,列在下面:
1. 執行launchctl 的時候,出現Dubious ownership on file (skipping) 這個錯誤
原因是:這個plist檔案必須是屬於root使用者,wheel組,用chown修改之
Sh代碼
- sudo chown root:wheel com.mysql.plist
2. 執行launchctl 的時候,出現launchctl: no plist was returned這個錯誤
原因是:plist檔案內容可能有格式錯誤。
用下面這個命令可以查看檔案格式是否有問題,我就是用這個查看到 有一個<true>標記沒有閉合。
Sh代碼
- sudo plutil -lint ~/com.mysql.plist
Mac 下利用 Launchctl 自啟動 mysql