天天看點

centos查詢mysql端口被占用_centos檢視端口占用情況

1 說明

linux經常會查詢端口是否被占用,被哪些程式占用。

這裡使用netstat指令檢視centos系統的端口占用情況。

2 步驟

(1)檢視全部端口占用情況

執行指令:

netstat -tulpn

結果如下:

[[email protected] zhang]# netstat -tulpn

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp6 0 0 :::3306 :::* LISTEN 10818/mysqld

udp 0 0 127.0.0.1:323 0.0.0.0:* 1596/chronyd

可以看到:

3306端口:被tcp協定的PID為10818的mysqld所占用,State為LISTEN表示正在被監聽。

1596端口:被udp協定的PID為1596的chronyd所占用,State為空(state為目前連接配接狀态,udp協定無連接配接狀态)。

(2)查詢指定端口的占用情況

如查詢3306端口的占用情況,可看到如下記錄為

[[email protected] zhang]# netstat -tulpn |grep 3306

tcp6 0 0 :::3306 :::* LISTEN 10818/mysqld

(3)查詢占用端口的程式

可通過上述查詢結果的PID查詢占用程式的詳細情況:

如查詢占用3306端口的程式PID為10818,檢視程式詳情如下:

[[email protected] zhang]# ps -ef | grep 10818

mysql 10818 1 0 Feb23 ? 01:47:50 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

3 參數說明

常用參數說明如下:

-t:顯示TCP協定端口

-u:顯示UDP協定端口

-l:--listening,隻顯示正在偵聽的套接字(這是預設的選項)

-p: --program,顯示套接字所屬程序的PID和名稱。

-n:--numeric,顯示數字形式位址而不是去解析主機、端口或使用者名。

檢視所有指令詳細用法:

man netstat

4 套接字狀态說明

State:套接字的狀态。因為在RAW協定中沒有狀态,而且UDP也不用狀态資訊,是以此行留白。通常它為以下幾個值之一:

ESTABLISHED:套接字有一個有效連接配接。

SYN_SENT:套接字嘗試建立一個連接配接。

SYN_RECV:從網絡上收到一個連接配接請求。

FIN_WAIT1:套接字已關閉,連接配接正在斷開。

FIN_WAIT2:連接配接已關閉,套接字等待遠端方中止。

TIME_WAIT:在關閉之後,套接字等待處理仍然在網絡中的分組

CLOSED:套接字未用。

CLOSE_WAIT:遠端方已關閉,等待套接字關閉。

LAST_ACK:遠端方中止,套接字已關閉。等待确認。

LISTEN:套接字監聽進來的連接配接。如果不設定 --listening (-l) 或者 --all (-a) 選項,将不顯示出來這些連接配接。

CLOSING:套接字都已關閉,而還未把所有資料發出。

UNKNOWN:套接字狀态未知。