最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解MySQL中的pid與socket

 更新時(shí)間:2021年06月15日 09:58:46   作者:MySQL技術(shù)  
不知道你有沒(méi)有注意過(guò),MySQL 啟動(dòng)時(shí)需要配置 pid 及 socket 文件路徑。偶爾還會(huì)出現(xiàn)因 pid 文件找不到而啟動(dòng)失敗的現(xiàn)象,那么 pid 與 socket 文件究竟是干什么用的呢?我們一起來(lái)看下本篇文章。
  • socket文件:當(dāng)用Unix域套接字方式進(jìn)行連接時(shí)需要的文件。
  • pid文件:MySQL實(shí)例的進(jìn)程ID文件。

1.pid-file介紹

MySQL 中的 pid 文件記錄的是當(dāng)前 mysqld 進(jìn)程的 pid ,pid 亦即 Process ID ??梢酝ㄟ^(guò) pid-file 參數(shù)來(lái)配置 pid 文件路徑及文件名,如果未指定此變量,則 pid 文件默認(rèn)名為 host_name.pid ,存放的路徑默認(rèn)放在 MySQL 的數(shù)據(jù)目錄。

建議指定 pid 文件名及路徑,pid 目錄權(quán)限要對(duì) mysql 系統(tǒng)用戶放開(kāi),具體配置可參考如下:

# my.cnf 配置文件
[mysqld]
pid-file  = /data/mysql/tmp/mysqld.pid

# 查看mysqld進(jìn)程
[root@localhost ~]# ps -ef|grep mysqld
root       8670      1  0 Jun09 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/tmp/mysqld.pid
mysql      9353   8670  0 Jun09 ?        00:01:23 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/logs/error.log --pid-file=/data/mysql/tmp/mysqld.pid --socket=/data/mysql/tmp/mysql.sock

# 查看pid文件內(nèi)容 
[root@localhost ~]# cat /data/mysql/tmp/mysqld.pid
9353

可以看到 pid 文件內(nèi)容只有一行,記錄了 mysqld 進(jìn)程的 ID 。mysqld 進(jìn)程啟動(dòng)后會(huì)通過(guò) create_pid_file 函數(shù)新建 pid 文件,通過(guò) getpid() 獲取當(dāng)前進(jìn)程號(hào)并將進(jìn)程 ID 寫入 pid 文件。進(jìn)程運(yùn)行后會(huì)給 pid 文件加一個(gè)文件鎖,只有獲得 pid 文件寫入權(quán)限的進(jìn)程才能正常啟動(dòng)并把自身的 PID 寫入該文件中,其它同一個(gè)程序的多余進(jìn)程則自動(dòng)退出。因此 pid 文件的作用是防止啟動(dòng)多個(gè)進(jìn)程副本。

有時(shí)候可能會(huì)遇到因 pid 文件問(wèn)題而啟動(dòng)失敗的情況,這幾類報(bào)錯(cuò)你可能遇到過(guò):

Can‘t start server: can‘t create PID file: No such file or directory

ERROR! MySQL server PID file could not be found

ERROR! The server quit without updating PID file

上面幾類 pid 相關(guān)報(bào)錯(cuò)解決方法其實(shí)都是類似的,首先要看下 error log 找到具體報(bào)錯(cuò),然后查看配置文件,確保 pid 文件目錄路徑正確且有權(quán)限有空間,之后可以看下 mysqld 進(jìn)程是否存在,若存在可手動(dòng) kill 掉,若有殘留的 pid 文件也可以先刪掉,一切排查就緒后,再次重新啟動(dòng),一般即可成功。

2.socket文件介紹

socket 即 Unix 套接字文件,在類 unix 平臺(tái),客戶端連接 MySQL 服務(wù)端的方式有兩種,分別是 TCP/IP 方式與 socket 套接字文件方式。Unix 套接字文件連接的速度比 TCP/IP 快,但是只能連接到同一臺(tái)計(jì)算機(jī)上的服務(wù)器使用。

通過(guò)設(shè)置 socket 變量可配置套接字文件路徑及名稱,默認(rèn)值為 /tmp/mysql.sock (對(duì)于某些發(fā)行格式,目錄可能有所不同)。參考配置如下:

# my.cnf 配置文件
[mysqld]
socket = /data/mysql/tmp/mysql.sock
[client]
socket = /data/mysql/tmp/mysql.sock

# 查看對(duì)應(yīng)目錄下的socket文件
root@localhost tmp]# ls -lh
total 8.0K
srwxrwxrwx 1 mysql mysql 0 Jun 10 15:19 mysql.sock
-rw------- 1 mysql mysql 6 Jun 10 15:19 mysql.sock.lock

# 通過(guò) -S 命令指定socket登錄
[root@localhost ~]# mysql -uroot -pxxxx -S /data/mysql/tmp/mysql.sock
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.22 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

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> status
--------------
mysql  Ver 8.0.22 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:          12
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.22 MySQL Community Server - GPL
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /data/mysql/tmp/mysql.sock
Binary data as:         Hexadecimal
Uptime:                 1 hour 27 min 31 sec

Threads: 3  Questions: 27  Slow queries: 0  Opens: 135  Flush tables: 3  Open tables: 56  Queries per second avg: 0.005

查看上述連接狀態(tài)可知,MySQL 在本地可以通過(guò) socket 方式連接。在本地登錄時(shí),如果 my.cnf 配置文件中的 [client] 部分沒(méi)有指定 socket 文件路徑,mysql 默認(rèn)會(huì)去尋找 /tmp/mysql.sock ,所以如果 mysqld 服務(wù)啟動(dòng)的時(shí)候,生成的 socket 文件不是默認(rèn)路徑的話,登陸可能會(huì)報(bào)錯(cuò)(ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock')。其實(shí) [mysqld] 部分及 [client] 部分都配置具體路徑可避免此問(wèn)題,也可以在 tmp 路徑下建立軟連接,如:ln -s /data/mysql/tmp/mysql.sock /tmp/mysql.sock 。同樣的,socket 文件目錄權(quán)限要對(duì) mysql 系統(tǒng)用戶放開(kāi)。

總結(jié):

本篇文章介紹了 MySQL 中的 pid 及 socket 文件的具體配置及作用。其實(shí)這兩個(gè)參數(shù)還是比較好維護(hù)的,一開(kāi)始配置好不要去動(dòng)它就好了,若遇到重啟報(bào)錯(cuò)的情況,根據(jù)錯(cuò)誤日志慢慢來(lái)排查,細(xì)心的操作,總會(huì)找到問(wèn)題的。

以上就是詳解MySQL中的pid與socket的詳細(xì)內(nèi)容,更多關(guān)于MySQL pid與socket的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一文帶你了解MySQL之事務(wù)隔離級(jí)別和MVCC

    一文帶你了解MySQL之事務(wù)隔離級(jí)別和MVCC

    這篇文章主要帶大家詳細(xì)了解一下MySQL之事務(wù)隔離級(jí)別和MVCC,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,感興趣的同學(xué)可以借鑒月u的
    2023-06-06
  • Windows平臺(tái)下安裝與配置MySQL9的方法

    Windows平臺(tái)下安裝與配置MySQL9的方法

    這篇文章主要介紹了Windows平臺(tái)下安裝與配置MySQL9的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • 安裝MySQL 5.7出現(xiàn)報(bào)錯(cuò):unknown variable ‘mysqlx_port=0.0‘的解決方法

    安裝MySQL 5.7出現(xiàn)報(bào)錯(cuò):unknown variable ‘mysqlx_port

    這篇文章主要介紹了安裝MySQL 5.7出現(xiàn)報(bào)錯(cuò):unknown variable ‘mysqlx_port=0.0‘的解決方法,文中通過(guò)圖文結(jié)合的方式介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-06-06
  • mybatis中的三種批量插入方式對(duì)比

    mybatis中的三種批量插入方式對(duì)比

    這篇文章主要介紹了mybatis中的三種批量插入方式對(duì)比,Mybatis是一款流行的Java持久化框架,它提供了三種不同的批量插入方式,分別為普通循環(huán)插入、BatchExecutor和JDBC批處理,普通循環(huán)插入方式適用于數(shù)據(jù)量較小的情況,但隨著數(shù)據(jù)量的增大會(huì)影響性能,需要的朋友可以參考下
    2023-10-10
  • MySQL 1303錯(cuò)誤的解決方法(navicat)

    MySQL 1303錯(cuò)誤的解決方法(navicat)

    今天在用navicat創(chuàng)建MYSQL存儲(chǔ)過(guò)程的時(shí)候,總是出現(xiàn)錯(cuò)誤,錯(cuò)誤信息如下.
    2009-12-12
  • MySQL批量插入遇上唯一索引避免方法

    MySQL批量插入遇上唯一索引避免方法

    以前使用SQL Server進(jìn)行表分區(qū)的時(shí)候就碰到很多關(guān)于唯一索引的問(wèn)題,今天我們來(lái)了解MySQL唯一索引的一些知識(shí):包括如何創(chuàng)建,如何批量插入,還有一些技巧上SQL,感興趣的朋友可以了解下
    2013-01-01
  • MySQL collation方法

    MySQL collation方法

    在以前用oracle的時(shí)候,很少關(guān)于它的collation方法,但是在mysql中,這點(diǎn)不加注意的話,卻有可能會(huì)出現(xiàn)問(wèn)題。
    2008-10-10
  • 詳解SQL四種語(yǔ)言:DDL DML DCL TCL

    詳解SQL四種語(yǔ)言:DDL DML DCL TCL

    本文詳細(xì)介紹了sql的四種語(yǔ)言,包括數(shù)據(jù)定義語(yǔ)言(DDL)、數(shù)據(jù)操作語(yǔ)言(DML)、數(shù)據(jù)控制語(yǔ)言(DCL)和事物控制語(yǔ)言(TCL)。在這幾種語(yǔ)言中有疑惑的可以來(lái)看看這篇文章。
    2016-07-07
  • 不卸載原有mysql直接安裝mysql8.0

    不卸載原有mysql直接安裝mysql8.0

    本文主要介紹了不卸載原有mysql直接安裝mysql8.0,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • MySQL數(shù)據(jù)庫(kù)入門之備份數(shù)據(jù)庫(kù)操作詳解

    MySQL數(shù)據(jù)庫(kù)入門之備份數(shù)據(jù)庫(kù)操作詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)入門之備份數(shù)據(jù)庫(kù)操作,結(jié)合實(shí)例形式詳細(xì)分析了MySQL備份數(shù)據(jù)庫(kù)基本操作命令與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-05-05

最新評(píng)論

太仆寺旗| 武平县| 岢岚县| 广西| 砀山县| 东乡族自治县| 邵武市| 克什克腾旗| 遂川县| 突泉县| 赫章县| 林口县| 那曲县| 汤原县| 明溪县| 南木林县| 汝南县| 皮山县| 临沂市| 曲水县| 晋宁县| 东台市| 菏泽市| 双柏县| 克拉玛依市| 双桥区| 潞西市| 天柱县| 漯河市| 璧山县| 怀仁县| 新河县| 长治县| 浪卡子县| 澎湖县| 页游| 墨江| 土默特左旗| 化隆| 文登市| 霍州市|