首页 > 技术文章 > Mysql 启动错误:the server quit without updating pid

bencakes 2016-09-06 15:48 原文

接到任务看看mysql为啥起不来,就上服务器上看了看,确实起不来,至于之前发生了啥也不知道。
服务器Ubuntu,mysql-5.6

1.先试下mysql登陆

mysql -uroot -p

发现报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock',这个错误好熟悉,经常碰到。但是造成这种错误的原因还是多种多样的。

2.估计是mysql服务没开启,于是开启mysql

/etc/init.d/mysql start

开启报错:the server quit without updating pid(/var/run/mysqld/mysqld.pid)

3.查看文件夹权限

ls -l /var/run/mysqld

看mysql是否有权限操作,如果没有则修改权限

chown -R mysql.mysql 
/var/run/mysqld

然后进入到/var/run/mysqld中看一看,发现根本没有文件
于是手动创建了一个mysqld.pid,再启动mysql发现还是报错,但是手动创建的mysqld.pid文件被删除了

4.查看错误日志

首先去/var/log/mysql/下去看一看,log下都没有mysql目录,没有开启错误日志
然后用

hostname

查看hostname.err错误日志
查看/etc/my.cnf找到mysql存放数据的地址/data/mysql
/data/mysql/下找到hostname.err

tail -n 100 hostname.err

日志信息不全?没有ERROR?近段时间的日志信息都没有

5.还是去开启mysql错误日志

创建/var/log/mysql目录并赋权
编辑/etc/my.cnf增加log_error=/var/log/mysql/error.log
再查看/var/log/mysql/error.log,可以找到一条ERROR:Can't find messagefile '/usr/share/mysql/errmsg.sys'
查到一下这个文件:locate errmsg.sys
找到了一大摞,选择手动复制一个上去

mkdir /usr/share/mysql
cp /usr/local/mysql/share/english/errmsg.sys /usr/share/mysql/errmsg.sys

再启动mysql,就成功了

推荐阅读