linux停止mysql服務命令有哪些

linux停止mysql服務命令有:1、使用命令service停止,語法如“service mysqld stopRedirecting to /bin/systemctl”;2、使用命令systemctl停止,語法如“/bin/systemctl stop mysqld.service”;3、使用命令mysqladmin停止,語法如“mysqladmin -uroot”。

Linux 啟動/重啟/停止 MySQL 數據庫的命令

一、啟動 MySQL 數據庫的命令

(一)使用命令 service 啟動

[root@htlwk0001host?/]#?service?mysqld?startRedirecting?to?/bin/systemctl?start?mysqld.service

說明:
可以成功啟動 MySQL 數據庫服務,不過實際是重定向到命令 systemctl 來啟動服務的。

(二)使用命令 systemctl 啟動

[root@htlwk0001host?~]#?systemctl?start?mysqld.service

如果沒有設置相關的環境變量,你可以進入到命令 systemctl 所在目錄后再執行上述的命令語句,或者在命令終端直接輸入命令完整的路徑來執行:

[root@htlwk0001host?~]#?/bin/systemctl?start?mysqld.service

不知道命令所在目錄,你可以使用命令 which 來查詢。

二、停止 MySQL 數據庫的命令

(一)使用命令 service 停止

[root@htlwk0001host /]# service mysqld stopRedirecting to /bin/systemctl   stop mysqld.service

說明:
(1)可以成功停止 MySQL 數據庫服務,不過實際是重定向到命令 systemctl 來停止服務的。
(2)如果是 ubuntu 系統,停止數據庫的命令是:service mysql stop

命令 service 在哪里?

[root@htlwk0001host ~]# which service  /usr/sbin/service

注意:目錄 /sbin 下的命令只有用戶 root 才有權限使用。

命令 systemctl 在哪里?

[root@htlwk0001host ~]# which systemctl  /usr/bin/systemctl

(二)使用命令 systemctl 停止

[root@htlwk0001host?~]#?/bin/systemctl?stop?mysqld.service

若配置了環境變量,則不必帶上完整的路徑,直接輸入命令即可:

[root@htlwk0001host?~]#?systemctl?stop?mysqld.service

(三)使用命令 mysqladmin 停止

使用該命令停止數據庫服務,其實需要登錄數據庫才行,所以需要輸入登錄數據庫的用戶名和密碼,登錄成功后才執行命令選項 shutdown,命令語句如下:

[root@htlwk0001host ~]# mysqladmin -uroot -p shutdown  

三、重啟 MySQL 數據庫的命令

(一)使用命令 service 重啟

[root@htlwk0001host?~]#?service?mysqld?restartRedirecting?to?/bin/systemctl?restart?mysqld.service

說明:
也是重定向到命令 systemctl 來重啟服務的。

(二)使用命令 systemctl 重啟

[root@htlwk0001host?home]#?/bin/systemctl?restart?mysqld.service

四、怎么查看 MySQL 是否啟動

(一)通過命令 pgrep 查看

[root@htlwk0001host?~]#?pgrep?-l?mysqld1060114?mysqld

說明:
命令 grep 是查找系統當前運行的進程,如上所示,可以根據進程名稱找到結果,說明進程 mysqld 正在運行中。

(二)通過命令 ps 查看

[root@htlwk0001host ~]# ps aux | grep mysqlmysql ? ?1060114 ?1.5 ?4.9 1604076 182836 ? ? ? ?Sl ? 08:33 ? 0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid  root ? ? 1060165 ?0.0 ?0.0 ?12320 ? 972 pts/0 ? ?S+ ? 08:33 ? 0:00 grep --color=auto mysql

說明:
如上所示的查找結果,進程 mysqld 是后臺進程(即守護進程 daemonize),進程狀態是 sl ,表示該進程是一個子進程,且處于休眠狀態,如果 MySQL 沒有啟動是查找不到這個進程的,查找到了就說明數據庫已經啟動了。

查找結果說明:
該進程屬于用戶 mysql,進程 ID 是 1060114,CPU 占用時間百分比 1.5%,內存占用百分比 4.9%,可以使用的虛擬內存大小是 1604076 千字節,進程占用的物流內存是 182836 千字節,進程啟動的時間是 8:33(年月日看系統當前的時間) ,實際使用 CPU 的時間是 0(應該沒有更新吧!)

(三)通過命令 cat 查看

[root@htlwk0001host ~]# cat /proc/1060114/statusName:	mysqld ? ? ? ? ? ? ? ?			# 進程名稱Umask:	0026							# 用戶權限屏蔽位,實際權限=預設權限-Umask						State:	S (sleeping)					# 進程狀態,可中斷的睡眠狀態Tgid:	1060114							# 線程組Id,等于Pid								Ngid:	0  Pid:	1060114							# 進程IdPPid:	1								# 父進程Id,啟動PidTracerPid:	0							# 跟蹤進程的PidUid:	27	27	27	27					# Uid/Euid/Suid/Fsuid 擁有者Id/有效用戶Id/Suid(Set User ID)/Fsuid(file system user ID)Gid:	27	27	27	27					# Gid/Egid/Sgid/Fsgid 對照Uid來理解FDSize:	128								# 文件描述符的最大個數Groups:	27 								# 啟動該進程的用戶所屬的組的IdNStgid:	1060114  NSpid:	1060114  NSpgid:	1060113  NSsid:	1060113  VmPeak:	 1604620 kB ? ? ? ? ? ? ? ? ? ? # 表示進程所占用最大虛擬內存大小,即進程所使用的虛擬內存的峰值VmSize:	 1604620 kB						# 表示進程當前使用的虛擬內存大小VmLck:	 ? ? ? 0 kB						# 表示被鎖定的內存大小,即已經鎖住的物理內存的大小(鎖住的物理內存不能交換到硬盤)VmPin:	 ? ? ? 0 kB  VmHWM:	 ?183668 kB						# 表示進程所占用物理內存的峰值VmRSS:	 ?183632 kB						# 表示進程當前占用物理內存的大小(與procrank中的RSS)RssAnon:	 ?166396 kB  RssFile:	 ? 17236 kB  RssShmem:	 ? ? ? 0 kB  VmData:	 ?549388 kB						# 表示進程占用的數據段的大小VmStk:	 ? ? 132 kB						# 表示進程堆棧段的大小,即進程占用的棧的大小VmExe:	 ? 25480 kB						# 表示進程代碼的大小,進程占用的代碼段大小(不包括庫)VmLib:	 ? ?7596 kB						# 表示進程所使用共享庫的大小,進程所加載的動態庫所占用的內存大小(可能與其它進程共享)VmPTE:	 ? ? 696 kB						# 表示進程頁表項的大小,進程占用的頁表大小(交換表項數量)VmSwap:	 ? ? ? 0 kB						# 進程所使用的交換區的大小HugetlbPages:	 ? ? ? 0 kB				# Huge Translation Lookaside Buffer Pages 巨大的快速查找緩沖頁表CoreDumping:	0						# 核心轉儲數據大小Threads:	48							# 共享使用該信號描述符的任務的個數SigQ:	0/14419							# 待處理信號的個數/目前最大可以處理的信號的個數SigPnd:	0000000000000000				# 屏蔽位,存儲了該線程的待處理信號ShdPnd:	0000000000000000				# 屏蔽位,存儲了該線程組的待處理信號SigBlk:	0000000000084007				# 存放被阻塞的信號SigIgn:	0000000000003000				# 存放被忽略的信號SigCgt:	00000001800006e8				# 存放被俘獲到的信號CapInh:	0000000000000000				# 能被當前進程執行的程序的繼承的能力CapPrm:	0000000000000000				# 進程能夠使用的能力,可以包含CapEff中沒有的能力,這些能力是被進程自己臨時放棄的CapEff:	0000000000000000				# 是CapPrm的一個子集,進程放棄沒有必要的能力有利于提高安全性CapBnd:	0000003fffffffff				# 是系統的邊界能力,我們無法改變它CapAmb:	0000000000000000  NoNewPrivs:	0							# 沒有新權限Seccomp:	0							# seccomp機制用于限制應用程序可以使用的系統調用,增加系統的安全性。Speculation_Store_Bypass:	vulnerable  Cpus_allowed:	3						# 可以執行該進程的CPU掩碼集Cpus_allowed_list:	0-1					# 該進程可以使用CPU的列表,這里是0-1Mems_allowed:							# 更改進程執行時占用的內存有關Mems_allowed_list:	0					# 進程只是使用了結點0的內存資源voluntary_ctxt_switches:	94			# 表示進程主動切換的次數nonvoluntary_ctxt_switches:	194			# 進程被動切換的次數

說明:

  • /proc/ 是一個虛擬的文件系統,是系統內存的映射,該目錄的數據都是存放在內存中,沒有占用任何的硬盤空間,所以通過該目錄可以查找到進程的信息,就已經足夠說明該進程已經啟動了,否則在內存中是無法查找到有關的信息的。

  • Tgid 是指線程組 Id,Tgid=Pid。一個進程就是一個線程組,每個進程的所有線程都有著相同的 Tgid,當程序開始運行時,只有一個主線程,這個主線程的 Tgid 就等于 Pid。而當其他線程被創建的時候,就繼承了主線程的 Tgid。

  • CoreDumping 當程序在運行的過程中出現異常終止或崩潰,系統會將程序當時的狀態記錄下來,保存在一個 Core 文件中,這種機制稱為 Core Dump,又稱“核心轉儲”。Core Dump 機制記錄了程序異常時的內存數據、寄存器狀態以及運行堆棧等信息,開發人員可以使用調試工具分析 Core 文件來快速定位程序異常原因。

  • Ruid 實際用戶 Id,指的是進程執行者是誰。

  • Euid 有效用戶 Id,指進程執行時對文件的訪問權限。

  • Suid 保存設置用戶 Id,作為 Effective User Id 的副本。

  • Fsuid 目前進程的文件系統的用戶識別碼,一般情況下,文件系統的用戶識別碼(fsuid)與有效的用戶識別碼(euid)是相同的。

  • Cpus_allowed 進程可以使用 CPU 的親和性掩碼,因為我們指定為兩塊 CPU,所以這里就是 3,如果該進程指定為4個 CPU (如果有話),這里就是 F(1111)。

(四)通過命令 lsof 查看

  1. 查看 mysql 進程打開的文件列表:

[root@htlwk0001host ~]# lsof -c mysqlCOMMAND ? ? PID ?USER ? FD ? TYPE ? ? ? ? ? ? DEVICE ?SIZE/OFF ? ? ?NODE NAME  mysqld ?1064381 mysql ?cwd ? ?DIR ? ? ? ? ? ? ?253,1 ? ? ?4096 ? ?636744 /var/lib/mysql  mysqld ?1064381 mysql ?rtd ? ?DIR ? ? ? ? ? ? ?253,1 ? ? ? 244 ? ? ? 128 /  mysqld ?1064381 mysql ?txt ? ?REG ? ? ? ? ? ? ?253,1 251816000 ?51228705 /usr/sbin/mysqld  mysqld ?1064381 mysql ?mem ? ?REG ? ? ? ? ? ? ?253,1 ? ?553480 ?50342901 /usr/lib64/libpcre2-8.so.0.7.1

如上所示,如果數據庫已經啟動了,則可以查詢到一堆被打開的文件,否則查詢不到任何文件。

  1. 查看數據庫默認端口 3306 的使用情況:

[root@htlwk0001host ~]# lsof -i:3306COMMAND ? ? PID USER ? FD ? TYPE ? DEVICE SIZE/OFF NODE NAME  java ? ?1050299 root ? 72u ?IPv6 19482407 ? ? ?0t0 ?TCP htlwk0001host:37380->47.114.59.224:mysql (CLOSE_WAIT)java ? ?1050299 root ? 78u ?IPv6 19482908 ? ? ?0t0 ?TCP htlwk0001host:37470->47.114.59.224:mysql (CLOSE_WAIT)

從上面的查詢結果可以看出,進程 java 已經關閉和 MySQL 服務器的連接,數據庫所在的主機地址是:47.114.59.224,端口名稱:mysql,端口狀態:CLOSE_WAIT。

數據庫服務器開啟后,查看端口 3306 的使用情況,如下:

[root@htlwk0001host ~]# lsof -i:3306COMMAND ? ? PID ?USER ? FD ? TYPE ? DEVICE SIZE/OFF NODE NAME  java ? ?1050398 ?root ? 72u ?IPv6 19485111 ? ? ?0t0 ?TCP htlwk0001host:37978->47.114.59.224:mysql (ESTABLISHED)java ? ?1050398 ?root ? 78u ?IPv6 19482585 ? ? ?0t0 ?TCP htlwk0001host:37480->47.114.59.224:mysql (CLOSE_WAIT)java ? ?1050398 ?root ? 80u ?IPv6 19485118 ? ? ?0t0 ?TCP htlwk0001host:37980->47.114.59.224:mysql (ESTABLISHED)java ? ?1050398 ?root ? 81u ?IPv6 19485120 ? ? ?0t0 ?TCP htlwk0001host:37982->47.114.59.224:mysql (ESTABLISHED)java ? ?1050398 ?root ? 82u ?IPv6 19484462 ? ? ?0t0 ?TCP htlwk0001host:37984->47.114.59.224:mysql (ESTABLISHED)java ? ?1050398 ?root ? 83u ?IPv6 19484463 ? ? ?0t0 ?TCP htlwk0001host:37986->47.114.59.224:mysql (ESTABLISHED)java ? ?1050398 ?root ? 84u ?IPv6 19484464 ? ? ?0t0 ?TCP htlwk0001host:37988->47.114.59.224:mysql (ESTABLISHED)java ? ?1050398 ?root ? 85u ?IPv6 19484465 ? ? ?0t0 ?TCP htlwk0001host:37990->47.114.59.224:mysql (ESTABLISHED)java ? ?1050398 ?root ? 86u ?IPv6 19484466 ? ? ?0t0 ?TCP htlwk0001host:37992->47.114.59.224:mysql (ESTABLISHED)java ? ?1050398 ?root ? 87u ?IPv6 19484467 ? ? ?0t0 ?TCP htlwk0001host:37994->47.114.59.224:mysql (ESTABLISHED)mysqld ?1068848 mysql ? ?4u ?IPv6 19485112 ? ? ?0t0 ?TCP htlwk0001host:mysql->47.114.59.224:37978 (ESTABLISHED)mysqld ?1068848 mysql ? 26u ?IPv6 19485094 ? ? ?0t0 ?TCP *:mysql (LISTEN)mysqld ?1068848 mysql ? 49u ?IPv6 19485119 ? ? ?0t0 ?TCP htlwk0001host:mysql->47.114.59.224:37980 (ESTABLISHED)mysqld ?1068848 mysql ? 50u ?IPv6 19485121 ? ? ?0t0 ?TCP htlwk0001host:mysql->47.114.59.224:37982 (ESTABLISHED)mysqld ?1068848 mysql ? 51u ?IPv6 19485122 ? ? ?0t0 ?TCP htlwk0001host:mysql->47.114.59.224:37984 (ESTABLISHED)mysqld ?1068848 mysql ? 52u ?IPv6 19485123 ? ? ?0t0 ?TCP htlwk0001host:mysql->47.114.59.224:37986 (ESTABLISHED)mysqld ?1068848 mysql ? 53u ?IPv6 19485124 ? ? ?0t0 ?TCP htlwk0001host:mysql->47.114.59.224:37988 (ESTABLISHED)

(五)使用命令 netstat 查看

數據庫啟動后,使用命令 netstat 查看數據庫服務端默認端口 3306 的使用情況:

[root@htlwk0001host ~]# netstat -an | grep ':3306'tcp6 ? ? ? 0 ? ? ?0 :::3306 ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ?   tcp6 ? ? ? 0 ? ? ?0 172.19.116.91:3306 ? ? ?47.114.59.224:37978 ? ? ESTABLISHED  tcp6 ? ? ? 0 ? ? ?0 172.19.116.91:37982 ? ? 47.114.59.224:3306 ? ? ?ESTABLISHED  tcp6 ? ? ? 0 ? ? ?0 172.19.116.91:3306 ? ? ?47.114.59.224:37990 ? ? ESTABLISHED  tcp6 ? ? ? 0 ? ? ?0 172.19.116.91:37988 ? ? 47.114.59.224:3306 ? ? ?ESTABLISHED  tcp6 ? ? ? 0 ? ? ?0 172.19.116.91:3306 ? ? ?47.114.59.224:37992 ? ? ESTABLISHED

從上面的查詢結果看,我們看這條:tcp6 0 0 172.19.116.91:37982 47.114.59.224:3306 ESTABLISHED ,可以得知數據庫服務端與客戶端保持連接狀態。

數據庫關閉后,我們再使用命令 netstat 查看端口 3306 的使用情況:

[root@htlwk0001host ~]# netstat -an | grep ':3306'tcp6 ? ? ? 0 ? ? ?0 172.19.116.91:3306 ? ? ?47.114.59.224:37978 ? ? FIN_WAIT2 ?  tcp6 ? ? ? 1 ? ? ?0 172.19.116.91:37982 ? ? 47.114.59.224:3306 ? ? ?CLOSE_WAIT   tcp6 ? ? ? 0 ? ? ?0 172.19.116.91:3306 ? ? ?47.114.59.224:37990 ? ? FIN_WAIT2 ?  tcp6 ? ? ? 1 ? ? ?0 172.19.116.91:37988 ? ? 47.114.59.224:3306 ? ? ?CLOSE_WAIT   tcp6 ? ? ? 0 ? ? ?0 172.19.116.91:3306 ? ? ?47.114.59.224:37992 ? ? FIN_WAIT2 ?  tcp6 ? ? ? 0 ? ? ?0 172.19.116.91:3306 ? ? ?47.114.59.224:38006 ? ? FIN_WAIT2 ?  tcp6 ? ? ? 0 ? ? ?0 172.19.116.91:3306 ? ? ?47.114.59.224:38004 ? ? FIN_WAIT2 ?  tcp6 ? ? ? 1 ? ? ?0 172.19.116.91:38008 ? ? 47.114.59.224:3306 ? ? ?CLOSE_WAIT   tcp6 ? ? ? 0 ? ? ?0 172.19.116.91:3306 ? ? ?47.114.59.224:37994 ? ? FIN_WAIT2 ?  tcp6 ? ? ? 0 ? ? ?0 172.19.116.91:3306 ? ? ?47.114.59.224:38010 ? ? FIN_WAIT2 ?  tcp6 ? ? ? 1 ? ? ?0 172.19.116.91:37984 ? ? 47.114.59.224:3306 ? ? ?CLOSE_WAIT

(六)使用命令 service 查看數據庫狀態

[root@htlwk0001host ~]# service mysqld statusRedirecting to /bin/systemctl status mysqld.service  ● mysqld.service - MySQL Server   ? Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)   ? Active: active (running) since Fri 2021-04-23 16:11:01 CST; 8s ago   ? ? Docs: man:mysqld(8)   ? ? ? ? ? http://dev.mysql.com/doc/refman/en/using-systemd.html   ?Process: 1069004 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)   ?Process: 1068982 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)   Main PID: 1069006 (mysqld)   ? ?Tasks: 46 (limit: 23070)   ? Memory: 214.2M   ? CGroup: /system.slice/mysqld.service   ? ? ? ? ? └─1069006 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid    4月 23 16:10:59 htlwk0001host systemd[1]: Starting MySQL Server...  4月 23 16:11:01 htlwk0001host systemd[1]: Started MySQL Server.

從上述的查詢結果可以看到: Active: active (running) since Fri 2021-04-23 16:11:01 CST; 8s ago,active(running),說明數據庫處于運行中的狀態。

(七)使用命令 systemctl 查看數據庫狀態

[root@htlwk0001host ~]# /bin/systemctl status mysqld.service

命令 service 其實就是調命令 systemctl 查詢的,所以命令 systemctl 的查詢結果和命令 service 相同,就不展示了。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享