文档章节

启动mysql报错The server quit without updating PID file!

阿dai
 阿dai
发布于 2017/08/18 14:25
字数 1708
阅读 159
收藏 0
点赞 1
评论 0

mark

mysql启动报错

今天启动mysql又一次报错:The server quit without updating PID file!记得上次出现这个问题的时候,尝试了一些常规的方法,未果,所以索性重新进行安装。但是,相同的问题今天又出现了!!!OH, my god!恰巧今天时间充裕,尝试各种办法,终于皇天不负有心人,经过一个小时的奋战后,终于让我给搞定,整个过程是这样的!

解决过程

首先,按着自己思路去查看日志文件,相信大家能看到的最多的内容就是Innodb,这是什么玩意儿?其实日志中的信息基本没啥用,就不浪费太多时间了。

然后,使用最直接的办法——百度。相信很多人搜到的结果都是以下几项:

  • 可能是/usr/local/mysql/data/mysql.pid文件没有写的权限
    解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!
  • 可能进程里已经存在mysql进程
    解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
  • 可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
    解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
  • mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
    解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
  • skip-federated字段问题
    解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
  • 错误日志目录不存在
    解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限
  • selinux惹的祸,如果是centos系统,默认会开启selinux
    解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试

抱着试试看的态度,我把上面所有方法都尝试了一遍,结果。。。然并卵!我的所有文件的权限都没问题,所属主和所属组也没问题,也没有找到所谓的mysql-bin.index文件,日志文件也有!!!心想,what are you 弄啥嘞???
继续搜索,在这里 https://serverfault.com/questions/457337/mysql-server-quit-without-updating-pid-file 看到一个成功案例,方法如下:
Try moving the /var/lib/mysql/ibdata1, /var/lib/mysql/ibdata2 and so on to another directory and start the server again. It should rebuild the index files. Once it did and you verified everything is working again, you can remove the old corrupted ones.
意思是说:删除mysql的库文件下的ibdata*文件。
我毫不犹豫的照做了,然后启动mysql,当时启动界面有点不一样,我窃喜,终于搞定,可是谁知道结果却是:

[root@localhost mysql]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
./usr/local/mysql/bin/mysqld_safe: 行 178:  3588 已杀死               nohup /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid --socket=/tmp/mysql.sock < /dev/null > /dev/null 2>&1
 ERROR! The server quit without updating PID file (/data/mysql/localhost.localdomain.pid).
[root@localhost mysql]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
.. ERROR! The server quit without updating PID file (/data/mysql/localhost.localdomain.pid).

总之问题还没解决!
于是继续查找原因,尝试各种办法更改配置文件,但是仍然没搞定,最后我在此查看错误日志:

[root@localhost mysql]# less localhost.localdomain.err  
2017-08-18 13:42:30 3905 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
2017-08-18 13:42:30 3905 [Note] InnoDB: Database physically writes the file full: wait...
2017-08-18 13:42:30 3905 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
2017-08-18 13:42:35 3905 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
2017-08-18 13:42:39 3905 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
2017-08-18 13:42:39 3905 [Warning] InnoDB: Creating New log files failed, the ib_ligfile existed。

看到这,我突然想到删除mysql库文件/data/mysql/中的“ib_*”文件,一不做二不休,反正是在虚拟机中操作,大不了重新安装,于是我执行如下操作:

** 注意:** 执行该操作之前一定要对数据库进行备份,因为ibdata1存放的是所有数据文件,如果不小心删了库,那就惨了!!!(传说中的从删库到跑路。。。)

[root@localhost mysql]# ls
aria_log.00000001  ib_buffer_pool  ib_logfile101              mysql
aria_log_control   ibdata1         localhost.localdomain.err  performance_schema
auto.cnf           ib_logfile0     multi-master.info          test
[root@localhost mysql]# rm -rf ib_buffer_pool  ib_logfile101 ibdata1 localhost.localdomain.err ib_logfile0

然后重启:

[root@localhost mysql]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
....... SUCCESS! 

这个结果让我大吃一惊,我有点不敢相信,于是又执行下面的操作:

[root@localhost mysql]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL..... SUCCESS!   

[root@localhost mysql]# ps aux |grep mysql
root      3976  0.0  0.0 113256    16 pts/0    S    13:42   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
mysql     4112  0.0 74.4 964872 366432 pts/0   Sl   13:42   0:02 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid --socket=/tmp/mysql.sock
root      4170  0.0  0.1 112664   972 pts/0    S+   14:21   0:00 grep --color=auto mysql
[root@localhost mysql]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1662/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2050/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      4112/mysqld         
tcp6       0      0 :::22                   :::*                    LISTEN      1662/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2050/master         

到这里,我终于安心了,确实解决了,于是赶紧写下文章分析一下个人心得!不过,由于专业知识薄弱,小白没能明白其中的原理,希望有高人在评论中指点,不胜感激!!!

补充:

2017年8月25日补充。
今天又看到类似的报错,但是并没有影响登录使用mysql,查看日志有这样的字样“initialize buffer pool,size=128.0M”,“cannot allocate memory for the pool”,大概意思是说无法分配足够的内存供pool使用。此时想到mysql配置文件中有相关的配置,于是更改如下参数:

innodb_buffer_pool_size = 128
#配置文件中该值默认为128M

将这个值调小,再次启动mysql服务,问题解决!

补充2:

查看日志有如下错误提示:Plugin 'InnoDB' registration as a STORAGE ENGINE failed。
解决办法:

[root@localhost mysql]# rm -rf ib_logfile*

然后启动mysql,问题解决!

© 著作权归作者所有

共有 人打赏支持
阿dai
粉丝 61
博文 201
码字总数 261392
作品 0
昌平
运维
centos下怎么启动mysql

不懂啊,service mysql start就报错,但是/usr/share/mysql/mysql.server start 就能启动 service mysql start报的错是: MySQL manager or server PID file could not be found![失败] Sta......

小白小霸王
2012/12/28
27.1K
5
一例mysql主从数据库,从库宕机后无法启动的解决方案

启动时报错信息: Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/qkzhi-appzookeeper-1.novalocal.pid). 2017-08-25T09:14:20.974876Z mysql......

qbs1989
06/26
0
0
Mysql启报错报The server quit without updating PID file

mysql 安装时候安装后启动不成功报错: Starting MySQL.. ERROR! The server quit without updating PID file (/data/mysql/26765574162f.pid). 查看报错日志: [ERROR] Fatal error: Can't......

枫叶云
02/10
0
0
新安装的MySQL启动报错The server quit without updating PID file

安装的MySQL启动报错The server quit without updating PID file [root@localhost mysql]# service mysqld restartMySQL server PID file could not be found! [失败]Starting MySQL.The ser......

赤练挚爱
2016/10/12
0
0
编译安装mysql与mysql error 解决之道

今天在济南出差,通过尝试编译安装mysql,使得一个诡异的问题得到解决。下面以流水的方式记述一下问题具体是怎样得到解决的。 昨天转发了一篇博文——error : The server quit without updat...

SVD
2015/07/11
0
1
mysql启动不了,重启也没用

问题描述: 今天有一台服务器mysql启动不了,重启服务报下面的错误: Warning: World-writable config file '/usr/local/kk-mail/service/mysql/conf/my.cnf' is ignored Starting MySQL... ......

sailikung
03/28
0
0
linux中修改mysql字符集,启动mysql报错。。。

mysq为5.5.28 linux中修改mysql字符集,启动mysql报错。。。 我在my.cnf[client]和[mysqld]添加default-character-set = utf8 有人说[mysqld]是添加character-set-server=utf8,我程序就连不...

庄泽锐
2014/03/08
500
1
Linux MySQL 常见无法启动或启动异常的解决方案

Linux MySQL 常见无法启动或启动异常的解决方案   在 Linux 上自建 MySQL 服务器,经常遇到各种无法启动或启动后异常的问题,本文列举一些常见问题的解决办法。   注意:以下错误日志提示...

xiaocao13140
05/24
0
0
linux平台安装Mysql报错

安装过程: [root@ibt syssoft]# rpm -ivh MySQL-server-5.1.56-1.glibc23.x86_64.rpm Preparing... ########################################### [100%] 1:MySQL-server #################......

阿咪
2011/05/05
1K
6
ubuntu 下 启动mysql 服务 出现 The server quit without ...

这个错误是如何产生的呢? 启动mysql 为什么会报 The server quit without updating PID file(....pid ) 产生的原因有几种, 1:配置文件出现错误my.cnf 2:/usr/local/mysql/data 文件夹 的权限...

首席安全砖家
2013/08/08
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!

前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据。 本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它...

crossoverJie
6分钟前
1
0
OSChina 周一乱弹 —— 你的朋友圈有点生锈了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @Devoes :分享Trademark的单曲《Only Love (电视剧《妙手仁心 II》插曲)》: 《Only Love (电视剧《妙手仁心 II》插曲)》- Trademark 手机党少...

小小编辑
今天
204
9
【面试题】盲人坐飞机

有100位乘客乘坐飞机,其中有一位是盲人,每位乘客都按自己的座位号就坐。由于盲人看不见自己的座位号,所以他可能会坐错位置,而自己的座位被占的乘客会随便找个座位就坐。问所有乘客都坐对...

garkey
今天
1
0
谈谈神秘的ES6——(二)ES6的变量

谈谈神秘的ES6——(二)ES6的变量 我们在《零基础入门JavaScript》的时候就说过,在ES5里,变量是有弊端的,我们先来回顾一下。 首先,在ES5中,我们所有的变量都是通过关键字var来定义的。...

JandenMa
今天
1
0
arts-week1

Algorithm 594. Longest Harmonious Subsequence - LeetCode 274. H-Index - LeetCode 219. Contains Duplicate II - LeetCode 217. Contains Duplicate - LeetCode 438. Find All Anagrams ......

yysue
今天
2
0
NNS拍卖合约

前言 关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html。 首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳htt...

红烧飞鱼
今天
1
0
Java IO类库之管道流PipeInputStream与PipeOutputStream

一、java管道流介绍 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的...

老韭菜
今天
0
0
AB 压力测试

Ubuntu 安装AB apapt-get install apache2-utils 使用AB 压力测试 -c 并发数 -n请求总数 ab -c 3000 -n 10000 http://localhost/test/index.php AB只能测试localhost 返回结果 This is Apac......

xiawet
今天
0
0
用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
今天
1
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部