linux停止mysql服務指令有:1、使用指令service停止,語法如「service mysqld stopRedirecting to /bin/systemctl」;2、使用指令systemctl停止,語法如「/ bin/systemctl stop mysqld.service」;3、使用指令mysqladmin停止,語法如「mysqladmin -uroot」。
Linux 啟動/重新啟動/停止MySQL 資料庫的指令
[root@htlwk0001host /]# service mysqld startRedirecting to /bin/systemctl start mysqld.service
說明:
可以成功啟動MySQL 資料庫服務,不過實際上是重定向到指令systemctl 來啟動服務的。
[root@htlwk0001host ~]# systemctl start mysqld.service
如果沒有設定相關的環境變量,你可以進入到指令systemctl 所在目錄後再執行上述的指令語句,或是在指令終端直接輸入指令完整的路徑來執行:
[root@htlwk0001host ~]# /bin/systemctl start mysqld.service
不知道指令所在目錄,你可以使用指令which 來查詢。
[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
[root@htlwk0001host ~]# /bin/systemctl stop mysqld.service
若配置了環境變量,則不必帶上完整的路徑,直接輸入命令即可:
[root@htlwk0001host ~]# systemctl stop mysqld.service
使用該指令停止資料庫服務,其實需要登入資料庫才行,所以需要輸入登入資料庫的使用者名稱和密碼,登入成功後才執行指令選項shutdown,指令語句如下:
[root@htlwk0001host ~]# mysqladmin -uroot -p shutdown
[root@htlwk0001host ~]# service mysqld restartRedirecting to /bin/systemctl restart mysqld.service
說明:
也是重定向到命令systemctl 來重啟服務的。
[root@htlwk0001host home]# /bin/systemctl restart mysqld.service
[root@htlwk0001host ~]# pgrep -l mysqld1060114 mysqld
說明:
指令grep 是查找系統目前運行的進程,如上所示,可以根據進程名稱找到結果,說明進程mysqld 正在運行中。
[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(應該沒有更新吧!)
[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)。
查看 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
如上所示,如果数据库已经启动了,则可以查询到一堆被打开的文件,否则查询不到任何文件。
查看数据库默认端口 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 查看数据库服务端默认端口 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
[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)
,说明数据库处于运行中的状态。
[root@htlwk0001host ~]# /bin/systemctl status mysqld.service
命令 service
其实就是调命令 systemctl
查询的,所以命令 systemctl
的查询结果和命令 service
相同,就不展示了。
以上是linux停止mysql服務指令有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!