MySQL启动错误:Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28)

17 篇文章 0 订阅
6 篇文章 0 订阅

通常是因为磁盘空间已满造成的,你需要知道原因和如何预防。

你可以通过df -h来查看磁盘情况。

[root@techbrood etc]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             ?G  ?G  ?G  100% /
...

Use%=100%表示根目录空间已满,无法再创建或写入内容。

使用du -sh --max-depth / 查看目录情况并逐级别向下查看,找大根源。

通常有以下几个地方需要注意:

1. 邮件目录

/var/spool/postfix/maildrop/

如果你创建了很多的定时任务cronjob,那么未发送邮件将充斥在该目录下,导致该目录下产生大量小文件。

如果出现这种情况,先清除:

ls | xargs -n 100 rm -fr ls

然后在cronjob中注明不发送邮件:

crontab -e

加上MAILTO=""

2. Web服务器日志

检查下是否由于调试而打开了access_log,清空,并禁用。

3. 数据库文件目录及索引引擎数据目录

如果你使用了MySQL,执行如下命令来查看数据库文件所在目录:

show variables like '%datadir%';

默认目录为:/var/lib/mysql

要修改为/home/mysql,按如下步骤操作:

a、停止mysqld
service mysqld stop
b、vi /etc/my.cnf
在[mysqld]中,把datadir=/var/lib/mysql更改为datadir=/home/mysql,

把socket=/var/lib/mysql.sock更改为socket=/home/mysql/mysql.sock:
[mysqld]
datadir=/home/mysql
socket=/home/mysql/mysql.sock
在[mysql]中添加socket路径:
socket=/home/mysql/mysql.sock
c、移动data目录
mv /var/lib/mysql  /home
d、vi /etc/init.d/mysqld
把get_mysql_option mysqld datadir “/var/lib/mysql” 修改为 get_mysql_option mysqld datadir “/home/mysql”。

如果你使用了lucene或sphinx,那么最好把索引数据路径设置在/home下面。

比如对于sphinx,在sphinx.conf中修改index配置的path参数为 /home/data/...。


by iefreer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值