MySQL作业无法启动

问题描述 投票:17回答:12

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

sudo服务mysql启动

开始:作业无法启动

所以我搜索了这个问题,它说我必须去/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

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

mysql ubuntu-12.04
12个回答
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。


0
投票

就我而言:

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

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并再次运行


0
投票

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

tail /var/log/mysql/error.log

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


10
投票

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

这解决了这个问题并使我能够重新启动否则无法启动的Mysql。


5
投票

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

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

sudo -u mysql  mysqld 

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

然后使用重启它

sudo service mysql restart

3
投票

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

跑,

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

其次是

sudo apt-get install mysql-server


3
投票

在我的情况下,它只是因为磁盘已满。只需清除一些磁盘空间并重启,一切都很好。


2
投票

这条线确实解决了我的问题,

sudo apt clean

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

0
投票

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

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

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

0
投票

就我而言,我这样做:

  1. sudo nano /etc/mysql/my.cnf
  2. 搜索bind名称和IP
  3. 删除特定的,只允许localhost 127.0.0.1和主机名
© www.soinside.com 2019 - 2024. All rights reserved.