Linux里面mysql.pid作用是什么?

Linux里面mysql.pid作用是什么?,第1张

pid文件的作用

1.pid文件的内容

用cat命令查看,可以看到内容只有一行,记录了该进程的ID

2.pid文件的作用

防止启动多个进程副本

3.pid文件的原理

进程运行后会给.pid文件加一个文件锁,只有获得pid文件(固定路径固定文件名)写入权限(F_WRLCK)的进程才能正常启动并把自身的PID写入该文件中。其它同一个程序的多余进程则自动退出。

mysql的pid文件

mysql pid文件记录的是当前mysqld进程的pid. 《linux 就该这么学》

通过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文件。

因为硬盘满了,mysql启动不起来了。

登录上去看了一下,发现原因。

删除mysql的日志文件,重启mysql发现错误:Starting MySQL.Manager of pid-file quit without updating file.[FAILED]

网上有不少这个原因的解释,但是都不是我想说的。我要说的原因其实很白痴:data/mysql-bin.index没有删除,data/mysql-bin.index是存放日志文件索引的文件,只删除了日志文件而没有对日志的索引文件做处理显然是不行的。

删除data/mysql-bin.index文件,再service mysqld start就可以了。

好久没有写日志了,我还没有忘记这里。

ps:网上找的,不是我写的!

1、修改相关目录的权限,配置文件中datadir和basedir,以及log的位置等,必须是mysql有写入的权限。

2、不要使用service mysql start来启动数据库了,因为你的系统之前可能已经安装了mysql,这个service是之前的那个mysql的。因此,可以使用mysqld_safe &来启动。看看情况,能不能启动

2、上面的步骤之后还是没法启动,那么再次删除mysql,保证删除

(1)、/etc/init.d/下面的mysql服务

(2)、清除mysql之前使用的数据文件目录内容


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8359087.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存