Starting MySQL.. ERROR The server quit without updating PID file (localhost.localdomain.pid)

用的好好的MySQL,突然自己就崩溃了。。。重启之类的就报错:

# service mysqld restart

Starting MySQL.. ERROR! The server quit without updating PID file (localhost.localdomain.pid)...


插入一个其他问题:

bin/./mysqld_safe --defaults-file=/etc/my.cnf --user=root

此命令也解决:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' 问题。


解决:

1.首先你的 pid 文件是一定没有的,不管什么原因,他就是丢失了;pid文件是mysql启动后,生成的一个文件,里面记录的是mysql当前的进程号,如果创建失败,mysql就无法启动。

 可能原因:
       mysql的端口被占用
       生成pid文件的目录mysql的权限不足
       mysql对应的my.cnf配置文件错误
       mysql的启动脚本有问题
       mysql有残余数据影响了服务的启动

       新增一个:有可能是你的内存不够,可以用"free -m"命令来查看自己服务器的内存,修改mysql配置文件my.cnf,添加如下设置参数:把mysql给InnoDB分配的内存设置为8M

innodb_buffer_pool_size = 8M

   以上可能性原因你都可以检查一下

2.本人的问题以上方式都没解决,以下是这个问题我的解决方式

3.去查看mysql的error日志,一般在my.cnf文件中配置:log-error=/var/log/mysqld.log,如果当初没配置默认一般在:/var/log/mysqld.log,延伸一下查找mysql日志的方式:


登录mysql终端
查看日志文件路径
mysql> show variables like 'general_log_file';
+------------------+------------------------------------+
| Variable_name    | Value                              |
+------------------+------------------------------------+
| general_log_file | /usr/local/mysql/data/localhost.log |
+------------------+------------------------------------+
1 row in set (0.00 sec)
错误日志文件路径
mysql> show variables like 'log_error';
+---------------+------------------------------------+
| Variable_name | Value                              |
+---------------+------------------------------------+
| log_error     | /usr/local/mysql/data/localhost.err |
+---------------+------------------------------------+
1 row in set (0.00 sec)
慢查询日志文件路径
mysql> show variables like 'slow_query_log_file';
+---------------------+-----------------------------------------+
| Variable_name       | Value                                   |
+---------------------+-----------------------------------------+
| slow_query_log_file | /usr/local/mysql/data/localhost-slow.log |
+---------------------+-----------------------------------------+
1 row in set (0.01 sec)


4.找到错误日志后去看里面的内容,同时在mysql bin 下面执行:
# ./mysqld_safe --defaults-file=/etc/my.cnf --user=root

来检测你当前无法执行原因,如果你只是执行 service mysqld start 只能报错【Starting MySQL.. ERROR! The server quit without updating PID file (localhost.localdomain.pid);】无法得知真正原因

当你的执行完上面的shell之后,去看你配置的错误日志【my.cnf中的log-error地址文件】

把所有暴露出的问题解决完就OK了,提醒。。。最后一次我去执行 # ./mysqld_safe --defaults-file=/etc/my.cnf --user=root 的时候,他打印两行就停那了,仿佛卡住了。。。

没关系,你只要去看你的错误日志就好,它里面会正常打印:

最终的打印中没有 error了就没问题了

5.此时你去看丢失的pid文件也就恢复了,登陆mysql去操作就OK了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值