mysql重启失败,报错:starting mysql。 the server quit without updating pid file (/[failed]l/mysql/data/hostname.pid])

(/[failed]l/mysql/data/hostname.pid])恢复

网上的大部分答案都是:
1. 注释/etc/my.cnf里的skip-federated注释掉即#skip-federated;
2. my.cnf文件配置过高,重新定义其中的参数(根据服务器情况定义);
3. 杀掉mysql_safe和mysqld进程,然后再重启;
4. 当前日志文件过大,超出了my.cnf中定义的大小(默认为64M),删除日志文件再重启;

5. 其他情况,查看日志文件(我的是localhost.localdomain.err,具体因人而异),然后具体分析

我的解决方案是:内存不足,主要是/var目录内存不足,导致创建  主机名.pid    不能创建主机名.pid

原因是:mysql生成这个文件时候,发现磁盘已经被写满,然后关闭时候又把这个pid文件删除了,导致不能重启mysql

后面重启数据库后,数据库表报错:can not create/write to file '/tmp/#sql_787_0.MYI'   (error: 28 -no space left on device)

解决方案:在etc/my.cnf    增加一条tmpdir=/home/tmp            然后给chmod 777 /home/tmp 权限,解决表问题

原因猜测:sql发起查询,然后消耗资源多,但是客户端这种原因卡掉了,,导致sql查询表的时候生成一个临时文件,卡住了,又无法返回,然后一直存在这个临时文件,下次在查询时候执行相同记录,就告诉已经存在临时文件了,无法执行。(可以移除tmp下的临时文件,不行的话,重新创建tmp临时目录)

再次出现innodb表点击打开显示不存在,于是最后办法,删除表重新建立