mysql pid檔案作用 pid檔案的作用

2021-10-17 21:58:10 字數 1842 閱讀 5789

pid檔案的作用

一、pid檔案的作用

1.pid檔案的內容

用cat命令檢視,可以看到內容只有一行,記錄了該程序的id

2.pid檔案的作用

防止啟動多個程序副本

3.pid檔案的原理

程序執行後會給.pid檔案加乙個檔案鎖,只有獲得pid檔案(固定路徑固定檔名)寫入許可權(f_wrlck)的程序才能正常啟動並把自身的pid寫入該檔案中。其它同乙個程式的多餘程序則自動退出。

二、mysql的pid檔案

mysql pid檔案記錄的是當前mysqld程序的pid.

通過mysqld_safe啟動mysql時,mysqld_safe會檢查pid檔案,未指定pid檔案時,pid檔案預設名為$datadir/`hostname`.pid

1)pid檔案不存在,不做處理

2)檔案存在,且pid已占用則報錯"a mysqld process already exists"

檔案存在,,但pid未占用,則刪除pid檔案

mysqld啟動後會通過create_pid_file函式新建pid檔案,通過getpid()獲取當前程序pid並將pid寫入pid檔案。

因此,通過mysqld_safe啟動時,pid檔案的作用是為了防止同乙個資料庫被啟動多次(資料檔案是同乙份,但埠不同的情況)。

三、mysql中的socket檔案的作用

mysql中的socket檔案的作用涉及到mysql的連線方式,mysql的客戶端連線mysql的服務端有兩種方式,一種是tcp/ip方式,一種是socket檔案的方式。

(1)tcp/ip 套接字方式

這種方式會在tcp/ip 連線上建立乙個基於網路的連線請求,一般是client連線跑在server上的mysql例項,2臺機器通過乙個tcp/ip 網路連線。

c:\users\gechong>mysql -h 192.168.1.10 -uroot -p

enter password: *

welcome to the mysql monitor. commands end with ; or \g.

your mysql connection id is 6

server version: 5.5.20-log mysql community server (gpl)

oracle is a registered trademark of oracle corporation and/or its

affiliates. other names may be trademarks of their respective

owners.

type 『help;』 or 『\h』 for help. type 『\c』 to clear the current input statement.

mysql>

這裡的客戶端是windows,向ip為192.168.1.10 的伺服器上的mysql例項發起了tcp/ip請求,連線成功後就可以使用mysql了。

(2)unix域套接字

unix域套接字並不是網路協議,所以只能在mysql客戶端和資料庫例項在一台伺服器上使用,使用者可以在配置檔案中指定套接字檔案,在登入mysql的時候可以加上socket。使用socket你無須定義連線host的具體ip位址,只要為空或127.0.0.1就可以。

–socket=/tmp/mysql.sock

mysql> show variables like 『socket』;

| variable_name | value |

| socket | /tmp/mysql.sock |

1 row in set (0.00 sec)

#mysql -uroot -s/tmp/mysql.sock

怎樣檢視mysql pid檔案路徑 檔案位置

當mysql例項啟動時,會將自己的程序id寫入乙個檔案中 該檔案即為pid檔案。該檔案可由引數pid file控制,預設位於資料庫目錄下,檔名為主機名.pid mysql show variables like pid file g 1.row variable name pid file valu...

P I D的作用及相關總結

p i d三個環節的作用 比例環節 能迅速反映誤差,從而減小誤差,但比例控制不能消除穩態誤差,kp 增大可以減小系統的穩態誤差,提高控制精度,但kp 太大會引起系統的不穩定 積分環節 提高系統的無差度,從而使系統的穩態效能得到改善和提高。但是積分作用太強會使系統超調加大,甚至使系統出現振盪,一般不單...

hadoop程序pid檔案問題

由於機器伺服器維護需要,要求hadoop集群的一台伺服器停止服務,於是我就到那台伺服器去停止hadoop的datanode和tasktracker,執行以下命令 bin hadoop daemon.sh stop datanode 竟然輸出 no datanode to stop 但是檢視程序,卻發...