Mysql自帶了一個非常好用的管理mysql服務的腳本,默認在$MYSQL_HOME/support-files路徑下,文件名是mysql.server。$MYSQL_HOME是mysql的安裝根目錄,下同。mysql.server的用法:Usage: ./mysql.server
1. 預使mysql開機自啟動,首先需要注冊mysql為ubuntu下的服務。
直接拷貝mysql.server文件至/etc/init.d/目錄下即可。
sudo cp $MYSQL_HOME/support-files/mysql.server /etc/init.d/mysql.server
sudo chmod +x /etc/init.d/mysql.server
2. 修改my.cnf,指定mysql的啟動用戶
定義:命令1=”./mysql.server start –user=user1“,命令2=”./mysql.server start”。(注意,命令1、2的區別在於紅色部分)
在編譯安裝mysql的過程中,若執行configure命令時指定“–user=user1”參數,則mysql將由用戶user1啟動,在mysql.server文件中會有“user=user1”這樣一行來指定mysql的啟動用戶,但該行指定的啟動用戶並未生效。即,需要使用命令1來啟動mysql,命令2啟動失敗。
為了使命令2生效,同時為了mysql開機自啟動,需要修改my.cnf,在[mysqld]區塊下添加“user=user1”這樣一行。如此,便可使用命令2啟動mysql,mysql也可以成功開機自啟動。
3. 設置mysql開機自啟動
讓mysql開機自己啟動
1.$ sudo update-rc.d -f mysql.server defaults
root@leroy-linux:/etc/init.d# update-rc.d -f mysql.server defaults
Adding system startup for /etc/init.d/mysql ...
/etc/rc0.d/K20mysql.server -> ../init.d/mysql.server
/etc/rc1.d/K20mysql.server -> ../init.d/mysql.server
/etc/rc6.d/K20mysql.server -> ../init.d/mysql.server
/etc/rc2.d/S20mysql.server -> ../init.d/mysql.server
/etc/rc3.d/S20mysql.server -> ../init.d/mysql.server
/etc/rc4.d/S20mysql.server -> ../init.d/mysql.server
/etc/rc5.d/S20mysql.server -> ../init.d/mysql.server
如果不想讓mysql開機自己啟動,可以使用
1.$ sudo update-rc.d -f mysql.server remove
root@sean-linux:/etc/init.d# update-rc.d -f mysql remove
Removing any system startup links for /etc/init.d/mysql ...
/etc/rc0.d/K21mysql.server
/etc/rc1.d/K21mysql.server
/etc/rc2.d/S19mysql.server
/etc/rc3.d/S19mysql.server
/etc/rc4.d/S19mysql.server
/etc/rc5.d/S19mysql.server
/etc/rc6.d/K21mysql.server
4. 服務的使用
啟動mysql:service mysql.server start;
停止mysql:service mysql.server stop;
查看mysql運行狀態:service mysql.server status。
另外,要確保mysql啟動用戶user1對$MYSQL_HOME具有讀寫權限,否則會因權限問題導致mysql啟動失敗。
補充
Ubuntu 取消 Apache及MySQL等自啟動
1. 裝個 sysv-conf-rc
2. sudo update-rc.d -f mysql remove 刪除mysql隨機器啟動的服務
sudo update-rc.d -f apache2 remove 刪除apache2隨機器啟動的服務
3. 查看/etc/rc2.d/裡面的apache和mysql啟動腳本,通常都是兩個阿拉伯數字後再接一個英文字母,再加腳本名稱。英文字母是S的都是會自動啟動的,K則相反。所以只要找到apache和mysql的啟動腳本,把S改成K就可以了。