位置: 编程技术 - 正文
推荐整理分享MySQL下PID文件丢失的相关错误的解决方法(mysqlpid文件没有),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysqlpid文件没有,mysqld from pid file ended,mysqld.pid缺失,mysqld from pid file ended,mysql启动时找不到pid文件,mysqld.pid缺失,mysql的pid找不到,mysql.pid文件缺失怎么办,内容如对您有帮助,希望把文章链接给更多的朋友!
今天同事A找到我,说是Mysql server X的负载很高,查询很慢。他自己捣鼓了一阵未果后,我们一起看了下。
同事A的操作:A一看mysql server有问题第一反应是重启mysql server,?澹。?(?□?)但是又使用了错误的命令
发现问题后,他又想起来应该是用下面的命令重启
CTRL+C取消
这时候
可以看到,系统又启动了一个Mysql进程,但是过一会后,会自动消失,这时候看日志可以发现以下错误:
然后后面我们一起看。首先我用client工具连接,发现mysql正常。web应用连接数据库也正常只是查询很慢。其次我在命令下面,连接:
提示:
这时候同事A提醒我,可以重启服务没关系。?澹?(?□?)o,他在建议我重启解决问题。好吧,如他所愿。于是我先:
然后去mysql data dir下面查看,果然没有pid file。这时候我的第一反应是配置文件不对,导致不能正常停止和重启。由于server是好的,因此我没有急着去比较以前备份的/etc/my.cnf.bak和/etc/my.cnf。我们先查找负载高的原因。因为命令行下无法进入mysql,在client下使用
可以看到里面有很多locked的查询,其中等待时间最久的一个是一个select查询,显示正在sending data,然后其余都是locked。猜想是sending data的线程占用了“所有的分配给mysql的资源”,导致后来的线程全部挂起,由于“查询(线程)是依次执行的”,后面locked的线程一直在等待前面sending data的线程结束。(这一段是猜想的…)sending data的这个线程U是一个select 查询,这个select对6张表进行了连接(公司的一个实习生提交的一个查询),其中有两张表的数据量在w左右,另外有张data表数据量在 w左右,另外还有sum(distinct ) ,group by,order by… 可以想象下…不知道要到何年何月这个查询才能执行完。这个sending data的慢查询的processid为,当机立断运行
然后再运行
可以看到前面locked的线程在一个个依次执行,后面还有好多个跟线程U类似的select线程,全部kill掉后,被堵塞的别的正常的几个Update,select,insert操作很快就执行完了。而后,web应用恢复正常,速度变快。返回linux命令行,使用
这时候可以发现server负载恢复正常。
下面解决无法正常关闭重启的情况。也就是因为前面同事的误操作引起的
的错误。我前面不是怀疑是配置文件里面有什么无法识别的参数选项么。通过
发现,配置文件没有问题。
#我的server的hostname,mysql pid文件默认名字为hostname.pid,如果没有在/etc/my.cnf里面指定特定和pid filename和pid file path的话,这个文件是跟mysql数据在一起的。
这时候通过
获取mysql用户运行的mysql进程的 pid,然后导入到hostname.pid文件里面
将文件的属主和属主组改为mysql:mysql
然后运行
还是会提示:
果然没有mysql.sock这个文件
但是这时候运行
显示
恩,pid file文件恢复正常,然后运行
这时候再运行
可以发现重启后,/tmp下有了mysql.sock这个文件。
大家可以搜索下mysql.sock的用途以及使用产生等等。
同事A的 操作① 导致pid 文件丢失, 操作② 导致mysql.sock文件丢失,大家感兴趣可以去vi mysqld脚本和server mysql脚本,然后导致service mysql status/stop/start/restart运行异常,导致命令行下mysql -u root -p登录mysql异常。
That's all.
MySQL的一些常用的SQL语句整理 用SHOW显示已有的数据库句法:SHOWDATABASES[LIKEwild]如果使用LIKEwild部分,wild字符串可以是一个使用SQL的%和_通配符的字符串。功能:SHOWDATABASES列出在MySQL服
MySQL基本操作语句小结 1、使用SHOW语句找出在服务器上当前存在什么数据库:mysqlSHOWDATABASES;+----------+|Database|+----------+|mysql||test|+----------+3rowsinset(0.sec)2、创建一个数据库abccsmy
检测MySQL的表的故障的方法 表的故障检测和修正的一般过程如下:检查出错的表。如果该表检查通过,则完成任务,否则必须修复出错的数据库表。在开始修复之前对表文件进行
标签: mysqlpid文件没有
本文链接地址:https://www.jiuchutong.com/biancheng/347631.html 转载请保留说明!上一篇:MySQL中数据类型相关的优化办法(mysql中数据类型为是否)
下一篇:MySQL的一些常用的SQL语句整理(mysql 常用)
友情链接: 武汉网站建设