1. 程式人生 > 其它 >service mysqld restart與service mysql restart的區別

service mysqld restart與service mysql restart的區別

1、前言

之前,遇到過在不同 linux 系統中啟動或關閉 mysql,網上查詢命令大都不一樣,大致分為下面三種(以重啟為例):

service mysql restart

service mysqld restart

service mysql.server restart

那麼這幾種究竟有什麼區別,是版本原因還是配置原因?抽了個時間查詢資料,搞明白了原因。

2、service 服務配置

直接說上面問題的答案,是配置的原因!

上面三個重啟 mysql 的命令,本質是通過 service 來啟動的。service 命令,顧名思義,就是用於管理 Linux 作業系統中服務的命令。可以用來啟動、關閉和重新啟動系統服務,還可以顯示所有系統服務的當前狀態。

但是,能夠使用 service 命令進行操作的,就是已經註冊成為 linux 的系統服務了。window 中也可以註冊成為系統服務。那麼如何註冊成為系統服務呢?

註冊成系統服務分為兩步:

  • 第一步:編寫一個 shell 服務指令碼(有的程式是自帶服務指令碼的,可以不用自己寫)
  • 第二步:將該指令碼服務複製到/ect/init.d/目錄下

下面以 mysql 為例,來說一下將 mysql 註冊成系統服務。

第一步:找到服務指令碼

mysql 是自帶服務指令碼的,其位置在 mysql 安裝目錄下的 support-file 目錄中,比如 mysql 安裝目錄為/usr/local/mysql,則:

在這裡插入圖片描述

如上圖,mysql.server 就是其自帶的服務指令碼(程式碼太長了,這裡就不貼圖看了,有興趣自己可以開啟看看其程式碼)。

第二步:將該指令碼服務複製到/ect/init.d/目錄下

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server

OK,到了這一步,我們就可以明白 service mysqld restart 與 service mysql restart 的區別了。

如果/etc/init.d/目錄下存在的是 mysql.server 命令,那麼要重啟 mysql,只能使用:service mysql restart 或者 service mysql.server restart。

如果你將 mysql.server 重新命名為 mysqld,那麼要使用 service 命令重啟 mysql,就必須要使用 service mysql restart。

說白了,就是看看你的服務指令碼名稱是什麼了!

注意:如果/etc/init.d 目錄沒有找到,可以找/etc/rc.d/init.d 目錄,兩者都是用來放服務指令碼的,這兩個目錄一般不會同時存在,如果同時存在一般會存在軟連線,具體可以參考:Linux 之 init.d、rc.d 資料夾說明