MySQL作业无法启动

时间:2014-04-07 09:55:25

标签: mysql ubuntu-12.04

我在Kubuntu 12.04上,在通过apt-get(mysql ver:5.5.35)安装mysql后,我正在尝试启动mysql服务,但是我收到了这个错误:

  

sudo service mysql start

     

开始:作业无法启动

所以我用Google搜索了这个问题,它说我必须去/var/log/mysql/error.log

但我的error.log文件为空:(

然后我检查了权限 :

  

drwxr-s --- 2 mysql adm 4096 Apr 7 11:21 mysql

     

-rw-r ----- 1 mysql adm 0 Apr 7 11:21 error.log

所以我不知道该怎么办......为什么会出现这个错误?为什么错误文件为空?

13 个答案:

答案 0 :(得分:42)

首先备份你的/ var / lib / mysql /目录只是为了安全。

sudo mkdir /home/<your username>/mysql/
cd /var/lib/mysql/
sudo cp * /home/<your username>/mysql/ -R

接下来清除MySQL(这将删除php5-mysql和phpmyadmin以及其他一些库,因此请准备好在此之后重新安装一些项目。

sudo apt-get purge mysql-server-5.1 mysql-common

删除文件夹/ etc / mysql /及其内容

sudo rm /etc/mysql/ -R

接下来检查你的旧数据库文件是否仍在/ var / lib / mysql /中,如果它们没有,则将它们复制回文件夹然后chown root:root

(仅在文件不存在时才运行这些文件)

sudo mkdir /var/lib/mysql/
sudo chown root:root /var/lib/mysql/ -R
cd ~/mysql/
sudo cp * /var/lib/mysql/ -R

接下来安装mysql服务器

sudo apt-get install mysql-server

最后重新安装任何缺失的软件包,如phpmyadmin和php5-mysql。

答案 1 :(得分:10)

我的问题是内存不足。 Digital ocean为Ubuntu添加交换内存提供了很好的指导:https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04

这解决了这个问题并让我重新启动了无法启动的Mysql。

答案 2 :(得分:5)

重新安装将起作用,因为它会将所有值重置为默认值。最好找到真正的罪魁祸首(my.cnf编辑错误确实发生了,例如在mysql调优期间出现错误/过时的参数建议。)

如果您怀疑my.cnf中的某些值是错误的,那么这是mysql诊断:运行mysqld以显示结果。

sudo -u mysql  mysqld 

然后,修复从屏幕弹出的所有my.cnf键错误,直到mysqld成功启动。

然后使用

重新启动它
sudo service mysql restart

答案 3 :(得分:3)

在大多数情况下,只需清除mysql-server软件包并重新安装它就可以完成这项工作。

运行,

sudo apt-get purge mysql-server-5.1 mysql-common

接着是

sudo apt-get install mysql-server

答案 4 :(得分:3)

就我而言,仅仅是因为磁盘已满。 只需清除一些磁盘空间并重新启动,一切都很好。

答案 5 :(得分:2)

这一行确实解决了我的问题,

sudo apt clean

答案 6 :(得分:1)

检查文件权限(如果已编辑)

故障:

$ sudo chmod 776 /etc/mysql/my.cnf
$ sudo service mysql restart
mysql stop/waiting
start: Job failed to start

确定:

$ sudo chmod 774 /etc/mysql/my.cnf
$ sudo service mysql restart
stop: Unknown instance:
mysql start/running, process 9564

答案 7 :(得分:1)

就我而言,问题是/var/log磁盘已满(请检查df -h

只需删除一些日志文件即可启动mysql,没什么大不了!

答案 8 :(得分:0)

给定的解决方案需要足够的免费硬盘,实际问题是硬盘内存不足。因此,如果您没有替代服务器或可用磁盘空间,则还需要其他替代方案。

当我运行批量下载到MySQL时,我遇到了生产服务器(Linode VPS)的这个错误。它不是一个合适的解决方案,而是非常快速的修复,我们经常需要在生产中快速提升。

  1. 将我们的VPS服务器调整为更高的硬盘大小
  2. 启动MySQL,它可以工作。
  3. 登录到您的MySQL实例并进行适当的调整以导致此错误(例如,删除一些记录,表格或将数据库备份带到本地计算机上,这些都是生产中不需要的等等。毕竟您知道,导致此问题的原因是什么。)
  4. 将您的VPS服务器降级到您之前使用过的软件包

答案 9 :(得分:0)

就我而言,我这样做:

  1. sudo nano /etc/mysql/my.cnf
  2. 搜索bind名称和IP
  3. 删除特定的,只允许localhost 127.0.0.1和主机名

答案 10 :(得分:0)

就我而言:

  • 重启服务器
  • 重启mysql
  • 在目录中创建.socket

答案 11 :(得分:0)

我有同样的问题。但是我发现我的高清硬盘已满。

$ sudo cat /var/log/upstart/mysql.log
/proc/self/fd/9: ERROR: The partition with /var/lib/mysql is too full!

所以,我运行

$ df -h

我收到消息

/dev/xvda1      7.8G  7.4G     0 100% /

然后我通过在终端上运行以下命令来找出哪个文件夹已满

$ cd /var/www
$ for i in *; do echo $i; find $i |wc -l; done

这给了我/ var / www上每个文件夹上文件的数量。我登录了包含大多数文件的文件夹,并删除了一些备份文件,然后继续删除无用的文件和缓存文件。

然后我运行$ sudo /etc/init.d/mysql start,它又可以工作了

答案 12 :(得分:0)

要帮助其他没有完整磁盘的人解决此问题,请先检查您的错误日志(对我来说,该路径在我的/etc/mysql/my.cnf文件中给出):

tail /var/log/mysql/error.log

原来,我的问题是在重新配置某些网络路由器后分配了新的IP地址,因此我需要更改bind-address变量。