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


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/mysql cp /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注冊為系統服務。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM