Linux 启动/重启/停止 MySQL 数据库的命令
文章目錄
- 一、啟動 MySQL 數據庫的命令
- (一)使用命令 service 啟動
- (二)使用命令 systemctl 啟動
- 二、停止 MySQL 數據庫的命令
- (一)使用命令 service 停止
- (二)使用命令 systemctl 停止
- (三)使用命令 mysqladmin 停止
- 三、重啟 MySQL 數據庫的命令
- (一)使用命令 service 重啟
- (二)使用命令 systemctl 重啟
- 四、怎么查看 MySQL 是否啟動
- (一)通過命令 pgrep 查看
- (二)通過命令 ps 查看
- (三)通過命令 cat 查看
- (四)通過命令 lsof 查看
- (五)使用命令 netstat 查看
- (六)使用命令 service 查看數據庫狀態
- (七)使用命令 systemctl 查看數據庫狀態
一、啟動 MySQL 數據庫的命令
(一)使用命令 service 啟動
[root@htlwk0001host /]# service mysqld start Redirecting 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 stop Redirecting 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關于命令 mysqladmin 更多用法請點擊查看
三、重啟 MySQL 數據庫的命令
(一)使用命令 service 重啟
[root@htlwk0001host ~]# service mysqld restart Redirecting to /bin/systemctl restart mysqld.service說明:
也是重定向到命令 systemctl 來重啟服務的。
(二)使用命令 systemctl 重啟
[root@htlwk0001host home]# /bin/systemctl restart mysqld.service四、怎么查看 MySQL 是否啟動
(一)通過命令 pgrep 查看
[root@htlwk0001host ~]# pgrep -l mysqld 1060114 mysqld說明:
命令 grep 是查找系統當前運行的進程,如上所示,可以根據進程名稱找到結果,說明進程 mysqld 正在運行中。
(二)通過命令 ps 查看
[root@htlwk0001host ~]# ps aux | grep mysql mysql 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/status Name: mysqld # 進程名稱 Umask: 0026 # 用戶權限屏蔽位,實際權限=預設權限-Umask State: S (sleeping) # 進程狀態,可中斷的睡眠狀態 Tgid: 1060114 # 線程組Id,等于Pid Ngid: 0 Pid: 1060114 # 進程Id PPid: 1 # 父進程Id,啟動Pid TracerPid: 0 # 跟蹤進程的Pid Uid: 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 # 啟動該進程的用戶所屬的組的Id NStgid: 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-1 Mems_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 查看
如上所示,如果數據庫已經啟動了,則可以查詢到一堆被打開的文件,否則查詢不到任何文件。
從上面的查詢結果可以看出,進程 java 已經關閉和 MySQL 服務器的連接,數據庫所在的主機地址是:47.114.59.224,端口名稱:mysql,端口狀態:CLOSE_WAIT。
數據庫服務器開啟后,查看端口 3306 的使用情況,如下:
[root@htlwk0001host ~]# lsof -i:3306 COMMAND 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 status Redirecting to /bin/systemctl status mysqld.service ● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: active (running) since Fri 2021-04-23 16:11:01 CST; 8s agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess: 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.2MCGroup: /system.slice/mysqld.service└─1069006 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid4月 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 相同,就不展示了。
總結
以上是生活随笔為你收集整理的Linux 启动/重启/停止 MySQL 数据库的命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建行网银盾补办收费吗?
- 下一篇: MySQL命令之show用法详解