我在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
所以我不知道该怎么办......为什么会出现这个错误?为什么错误文件为空?
答案 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)的这个错误。它不是一个合适的解决方案,而是非常快速的修复,我们经常需要在生产中快速提升。
答案 9 :(得分:0)
就我而言,我这样做:
sudo nano /etc/mysql/my.cnf
bind
名称和IP 答案 10 :(得分:0)
就我而言:
答案 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
变量。