mysql pid文件是啥用途

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql pid文件是啥用途相关的知识,希望对你有一定的参考价值。

MySQL pid 文件记录的是当前 mysqld 进程的 pid,pid 亦即 Process ID。

可以通过如下的例子查看:

$ /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
$ ll /data/mysql/centos.pid
-rw-rw---- 1 mysql mysql 5 Apr  8 09:16 /data/mysql/centos.pid
$ cat /data/mysql/centos.pid
1598
$ ps -ef | grep mysql | grep -v grep
root      1476     1  0 09:16 pts/0    00:00:00 /bin/sh \\
/usr/local/mysql/bin/mysqld_safe \\
--datadir=/data/mysql \\
--pid-file=/data/mysql/centos.pid
mysql     1598  1476  0 09:16 pts/0    00:00:00 /usr/local/mysql/bin/mysqld \\
--basedir=/usr/local/mysql \\
--datadir=/data/mysql --user=mysql \\
--log-error=/data/mysql/centos.err \\
--pid-file=/data/mysql/centos.pid \\
--socket=/tmp/mysql.sock \\
--port=3306

1、未指定 pid 文件时,pid 文件默认名为 主机名.pid,存放的路径在默认 MySQL 的数据目录。通过 mysqld_safe 启动 MySQL 时,mysqld_safe 会检查 pid 文件,如果 pid 文件不存在,不做处理;如果文件存在,且 pid 已占用则报错 "A mysqld process already exists",如果文件存在,但 pid 未占用,则删除 pid 文件。
2、查看 MySQL 的源码可以知道,mysqld 启动后会通过 create_pid_file 函数新建 pid 文件,通过 getpid() 获取当前进程 pid 并将 pid 写入 pid 文件。
3、因此,通过 mysqld_safe 启动时, MySQL pid 文件的作用是:在数据文件是同一份,但端口不同的情况下,防止同一个数据库被启动多次。

参考技术A 问题描述:[root@bogonmysql-5.1.41]#/etc/rc.d/init.d/mysqldstartStartingMySQL.Managerofpid-filequitwithoutupdatingfile.[失败]---------------------------解决法:配置的时候有一个步骤是cpsupport-files/my-medium.cnf/etc/my.cnf;就编辑my.cnf,在[mysqld]下面加上:datadir=/usr/local/mysql/data例如#TheMySQLserver[mysqld]port=3306socket=/tmp/mysql.sockskip-lockingkey_buffer_size=16Mmax_allowed_packet=1Mtable_open_cache=64sort_buffer_size=512Knet_buffer_length=8Kread_buffer_s2.首先到/usr/local/mysql/data先chown-Rmysql:mysql*然后杀掉mysql进程,在启动musql就行了打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试3.4.确实一般都是my.cnf配置文件的问题/etc/my.cnf来自以下文件:如果你的内存≤64M,则复制/usr/local/share/mysql/my-small.cnf为/etc/my.cnf#Thisisforasystemwithlittlememory(<=64M)whereMySQLisonlyused#fromtimetotimeandit'simportantthatthemysqlddaemon#doesn'tusemuchresources.如果内存是128M,则复制/usr/local/share/mysql/my-medium.cnf为/etc/my.cnf#Thisisforasystemwithlittlememory(32M-64M)whereMySQLplays#animportantpart,orsystemsupto128MwhereMySQLisusedtogetherwith#otherprograms(suchasawebserver)如果内存是512M,则复制/usr/local/share/mysql/my-large.cnf为/etc/my.cnf#Thisisforalargesystemwithmemory=512Mwherethesystemrunsmainly#MySQL.如果内存是1-2G,则复制/usr/local/share/mysql/my-huge.cnf为/etc/my.cnf#Thisisforalargesystemwithmemoryof1G-2Gwherethesystemrunsmainly#MySQL. 参考技术B MySQL pid 文件记录的是
当前 mysqld 进程的 pid,pid 亦即 Process ID。

以上是关于mysql pid文件是啥用途的主要内容,如果未能解决你的问题,请参考以下文章

jenkins 用户文件夹的用途是啥,这些配置文件是啥?

App Store 配置文件的用途是啥?

site.webmanifest 文件的主要用途是啥?

“node_modules”文件夹的用途是啥?

Makefile 中 .PHONY 的用途是啥?

Xcode 生成的 AppDelegate 和 ViewController 文件的用途是啥?