service: no such service mysqld 與MySQL的開啟,關閉和重啟

來源:互聯網
上載者:User

標籤:命令列   password   分享   ice   運行   basedir   tar   space   沒有   

1.問題原因與解決辦法

因為修改了MySQL臨時檔案的目錄後,使用service mysqld restart重啟MySQL出現如下錯誤:

service: no such service mysqld

 

錯誤原因: 
是因為我們在編譯安裝MySQL時沒有將MySQL的控制指令碼mysql.server拷貝到/etc/init.d/中。

解決辦法: 
將MySQL的安裝目錄下的support-files/mysql.server拷貝到/etc/init.d/中,並重新命名為mysqld。拷貝命令如下:

#我的mysql安裝路徑是:/usr/local/mysqlcp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

 

2.service命令的工作原理

service命令,顧名思義,就是用於管理Linux作業系統中服務的命令。可以用來啟動、關閉和重新啟動系統服務,還可以顯示所有系統服務的目前狀態。

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

比如從網上下載一個新的軟體,安裝到linux上面去。想註冊成系統服務,我需要自己編寫一個shell服務指令檔才行。這個服務指令檔如何編寫呢?如果不瞭解servcie命令的機制,會漏掉一些東西了。比如我之前下載的sphinx安裝到伺服器後。我想使用”service sphinx start”這樣的簡短命令來管理,就必須註冊成為系統服務,而有些軟體的源碼包中是沒有提供寫好的指令碼的,有時必須自己寫一個。但是,幸好MySQL內建了服務指令碼可供service命令調用,也就是上面的mysql.server這個指令碼,我們要做的就是將MySQL的服務指令碼拷貝到/ect/init.d/目錄下,並重新命名為mysqld。

與service相關的chkconfig命令的作用? 
service命令可以快速地開啟和停止linux中的服務程式,這在調試過程中非常有用chkconfig命令可以快速地設定開機時需要自動啟動的服務程式。

這兩個命令的功能都可以通過其他方法實現,只不過有了它們之後更加方便,維護工作可以更加輕鬆。

chkconfig命令的用法不再贅述!網上自行查閱!

3./ect/init.d/目錄存放的是什麼

在Linux中,/etc/init.d 和 /etc/rc.d/init.d這兩個目錄,都是用來放服務指令碼的,這兩個目錄一般不會同時存在,因為功能是一樣的。當Linux啟動時,會根據chkconfig命令設定run level來確定是否啟動相應的程式,如果啟動的話就回去尋找這些目錄中的服務指令碼,並啟動相應的程式。

4.不使用service如何開啟,關閉,重啟mysql

如果沒有將mysql註冊為系統服務,那麼我們可以使用MySQL為我們提供的一些工具來開啟,關閉,重啟mysql。當然,mysql服務指令碼對mysql的操作也是調用這些工具來完成的。這些工具都在mysql的安裝目錄的bin目錄中。貼個圖: 

如果我們按照上面的操作將mysql註冊為系統服務的話,使用service來開啟,關閉,重啟mysql非常方便,命令如下:

#重啟service mysqld restart#開啟service mysqld start#關閉service mysqld stop

 

或者執行運行服務指令碼mysqld或者mysql.server:

#啟動/etc/inint.d/mysqld start#關閉/etc/inint.d/mysqld stop#重啟/etc/inint.d/mysqld restart

 

 

不使用service如何開啟,關閉,重啟mysql,也就意味這不使用mysql為我們提供的服務指令碼mysql.server來管理mysql的開啟和關閉。但我們可以使用如下工具來完成。

開啟mysql:

/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --log-error=/usr/local/mysql/data/Tencent_IM.err --pid-file=/usr/local/mysql/data/Tencent_IM.pid --socket=/tmp/mysql.sock --port=3306

 

有點長,上面是我黏貼正在啟動並執行mysql進程,大家也可以在關閉mysql之前使用ps查看,並複製一下。

或者使用mysqld_safe來啟動mysql:

mysqld_safe --user=mysql &

 

關閉mysql:

mysqladmin -u[username] -p[password] shutdown

 

重啟mysql: 
查看mysql的服務指令碼mysql.server或者mysqld,我發現重啟mysql也是先關閉,再啟動。所以沒有直接重啟的命令,還是乖乖的先關閉,再啟動吧!

當然,利用mysql提供的工具來控制mysql的開啟和關閉,應該還有其它的方法,我目前還不要太清楚,有知道的請留言告知,萬分感謝!

5.mysql和mysqld的區別

mysqld(mysql deamon)是服務端程式,是mysql提供服務的主要程式,提供服務的還有很多其它的程式,見mysql安裝目錄的bin目錄。

mysql是命令列用戶端程式,用於執行sql語句!

還要注意一點,我們習慣把mysql的服務指令碼mysql.server更名為mysqld放在/etc/init.d/目錄下,將mysql註冊為系統服務。

 

service: no such service mysqld 與MySQL的開啟,關閉和重啟

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.