广告
返回顶部
首页 > 资讯 > 数据库 >详解MySQL中的pid与socket
  • 855
分享到

详解MySQL中的pid与socket

MySQLsocketMySQLpid 2022-05-12 04:05:47 855人浏览 安东尼
摘要

目录1.pid-file介绍2.Socket文件介绍总结: socket文件:当用Unix域套接字方式进行连接时需要的文件。 pid文件:Mysql实例的进程ID文件。 1.pid-file介绍 m

目录
  • socket文件:当用Unix域套接字方式进行连接时需要的文件。
  • pid文件:Mysql实例的进程ID文件。

1.pid-file介绍

mysql 中的 pid 文件记录的是当前 mysqld 进程的 pid ,pid 亦即 Process ID 。可以通过 pid-file 参数来配置 pid 文件路径及文件名,如果未指定此变量,则 pid 文件默认名为 host_name.pid ,存放的路径默认放在 MySQL 的数据目录。

建议指定 pid 文件名及路径,pid 目录权限要对 mysql 系统用户放开,具体配置可参考如下:


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

# 查看mysqld进程
[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文件内容 
[root@localhost ~]# cat /data/mysql/tmp/mysqld.pid
9353

可以看到 pid 文件内容只有一行,记录了 mysqld 进程的 ID 。mysqld 进程启动后会通过 create_pid_file 函数新建 pid 文件,通过 getpid() 获取当前进程号并将进程 ID 写入 pid 文件。进程运行后会给 pid 文件加一个文件,只有获得 pid 文件写入权限的进程才能正常启动并把自身的 PID 写入该文件中,其它同一个程序的多余进程则自动退出。因此 pid 文件的作用是防止启动多个进程副本。

有时候可能会遇到因 pid 文件问题而启动失败的情况,这几类报错你可能遇到过:

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 相关报错解决方法其实都是类似的,首先要看下 error log 找到具体报错,然后查看配置文件,确保 pid 文件目录路径正确且有权限有空间,之后可以看下 mysqld 进程是否存在,若存在可手动 kill 掉,若有残留的 pid 文件也可以先删掉,一切排查就绪后,再次重新启动,一般即可成功。

2.socket文件介绍

socket 即 Unix 套接字文件,在类 unix 平台,客户端连接 MySQL 服务端的方式有两种,分别是 tcp/IP 方式与 socket 套接字文件方式。Unix 套接字文件连接的速度比 TCP/IP 快,但是只能连接到同一台计算机上的服务器使用。

通过设置 socket 变量可配置套接字文件路径及名称,默认值为 /tmp/mysql.sock (对于某些发行格式,目录可能有所不同)。参考配置如下:


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

# 查看对应目录下的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

# 通过 -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

查看上述连接状态可知,MySQL 在本地可以通过 socket 方式连接。在本地登录时,如果 my.cnf 配置文件中的 [client] 部分没有指定 socket 文件路径,mysql 默认会去寻找 /tmp/mysql.sock ,所以如果 mysqld 服务启动的时候,生成的 socket 文件不是默认路径的话,登陆可能会报错(ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock')。其实 [mysqld] 部分及 [client] 部分都配置具体路径可避免此问题,也可以在 tmp 路径下建立软连接,如:ln -s /data/mysql/tmp/mysql.sock /tmp/mysql.sock 。同样的,socket 文件目录权限要对 mysql 系统用户放开。

总结:

本篇文章介绍了 MySQL 中的 pid 及 socket 文件的具体配置及作用。其实这两个参数还是比较好维护的,一开始配置好不要去动它就好了,若遇到重启报错的情况,根据错误日志慢慢来排查,细心的操作,总会找到问题的。

以上就是详解MySQL中的pid与socket的详细内容,更多关于MySQL pid与socket的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: 详解MySQL中的pid与socket

本文链接: https://www.lsjlt.com/news/10422.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解MySQL中的pid与socket
    目录1.pid-file介绍2.socket文件介绍总结: socket文件:当用Unix域套接字方式进行连接时需要的文件。 pid文件:MySQL实例的进程ID文件。 1.pid-file介绍 M...
    99+
    2022-05-12
    MySQL socket MySQL pid
  • C#中的Socket编程详解
    目录一,网络基础二,Socket 对象SocketTypeProtocolTypeAddressFamily三,Bind() 绑定与 Connect() 连接Bind()Connec...
    99+
    2022-11-12
  • mysql中pid文件丢失怎么解决
    这篇“mysql中pid文件丢失怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“my...
    99+
    2022-10-19
  • Java中Socket用法详解
    目录1 问题引入1.1 网络架构模型1.1.1 OSI参考模型1.1.2 TCP/IP五层模型1.1.3 各协议层的说明1.2 网络编程中的问题1.3 TCP协议与UDP协议1.3....
    99+
    2022-11-12
  • Linux下/var/run/目录下的pid文件详解及pid文件作用
    先给大家介绍下linux下/var/run/目录下的pid文件,具体详解如下所示: linux系统中/var/run/目录下的*.pid文件是一个文本文件,其内容只有一行,即某个进程的PID。.pid文件的作用是防止进程...
    99+
    2022-06-04
    linux var run pid
  • mysql中的pid是什么意思
    mysql中的pid是指进程ID“Process ID”,用于标识正在运行的进程的唯一标识符,进程是操作系统中正在执行的程序的实例,每个进程都有一个唯一的进程ID,对于跟踪和管理进程非常重要。本教程操作系统:Windows10系统、MySQ...
    99+
    2023-08-02
  • MySQL报错:The server quit without updating PID file的解决思路与方法
    今天在学习mysql 二进制日志的时候需要在编辑my.cnf的文件,产生的一系列报错,个人的排错思路和方法,仅供参考。 重启damon、重启mysql 发现报错 Starting MySQL. ERROR! The s...
    99+
    2023-02-28
    mysql启动报错:The server quit mysql 启动报错 mysql报错提示信息
  • 详解Mysql中tinyint与int的区别
    问题:int(1) 和 tinyint(1) 有什么区别呢? 像这样的设计,反正我是不会写int(1)的。 查了下,mysql中设置了储存类型后,储存是定长的,也就是说,int(1)...
    99+
    2022-11-12
  • 详解linux系统下pid的取值范围
    一般PID_MAX=0x8000(可改),因此进程号的最大值为0x7fff,即32767。 进程号0-299保留给daemon进程。 现在的内核好像没有这个限制了,《linux内核设计与实现》上说为了与老版本的...
    99+
    2022-06-04
    linux pid取值范围 linux pid
  • socket编程的详细讲解
    目录1:socket大致介绍2:TCP/IP协议3:回过头再来理解socket4:socket的一些接口函数原理5:socket的一个例子,总结上述的问题6:上面例子用到的知识点7:...
    99+
    2022-11-12
  • Oracle与MySQL的区别详解
    目录什么是mysql什么是oracleMySQL的优点MySQL的缺点Oracle的优点Oracle的缺点Oracle与MySQL的区别什么是MySQL MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司...
    99+
    2023-04-14
    Oracle与MySQL的区别 Oracle与MySQL优缺点 Oracle优缺点 MySQL优缺点
  • mysql中socket的作用
    本篇内容主要讲解“mysql中socket的作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中socket的作用”吧! ...
    99+
    2022-10-18
  • 详解如何在PHP中实现socket
    PHP是一种广泛应用于web开发的服务器端脚本语言,而Socket是一种可供服务器应用程序或客户端应用程序使用以发送或接收数据的通用接口。PHP利用socket可以在网络中进行基于TCP/IP协议的socket通信,实现web服务端的数据交...
    99+
    2023-05-14
    php socket
  • MySQL中replace into与replace区别详解
    目录0.故事的背景1.replace into 的使用方法2.有唯一索引时—replace into & 与replace 效果3.没有唯一索引时—replace into 与 ...
    99+
    2022-08-19
    MySQLreplaceinto与replace MySQLreplaceinto MySQLreplace
  • 图文详解MySQL中的主键与事务
    目录一、MySQL 主键和表字段的注释 1.主键及自增 2.表字段的注释3.多表查询二、数据库事务概述1.数据库事务特性(ACID)2.事务并发不进行事务隔离4.MySQL 数据库管理事务1)别名...
    99+
    2022-05-13
    MySQL 主键 事务 mysql数据库事务 mysql主键类型
  • MySQL中SQL Mode的查看与设置详解
    MySQL中SQL Mode的查看与设置 MySQL可以运行在不同的模式下,而且可以在不同的场景下运行不同的模式,这主要取决于系统变量 sql_mode 的值。本文主要介绍一下这个值的查看与设置,主要在Mac系统下...
    99+
    2022-05-26
    MySQL SQL Mode
  • MySQL中索引与视图的用法与区别详解
    前言 本文主要给大家介绍了关于MySQL中索引与视图的使用与区别的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 索引 一、概述 所有的Mysql列类型都可以被索引。 mys...
    99+
    2022-10-18
  • MySQL的备份与恢复详解
    在公司中备份的策略并不是千篇一律的,而是根据每个企业 的实际生产环境与业务需求制定合适的备份策略。无论是选择完全备份还是增量备份,都需要考虑它们的优缺点,是否适合当前的生产环境。同时为了保证恢复的完整性,建...
    99+
    2022-10-18
  • 详解mysql的备份与恢复
    前言: 前面几篇文章为大家介绍了 MySQL 各种语句语法的用法及用户权限相关知识。本篇文章将主要讲解 MySQL 数据库数据备份与恢复相关知识,主要聚焦于逻辑备份,介绍mysqldump工具的使用以及恢复方法。 ...
    99+
    2022-05-28
    MySQL 备份 MySQL 恢复
  • 基于BIO的Java Socket通信详解
    BIO,即阻塞IO,在基于Socket的消息通信过程中,Socket服务端向外部提供服务,而Socket客户端可以建立到Socket服务端的连接,进而发送请求数据,然后等待Socket服务端处理,并返回处理结果(响应)。基于BIO的通信,S...
    99+
    2023-05-30
    bio java socket
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作