我在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
所以我不知道该怎么办......为什么会出现这个错误?为什么错误文件为空?
首先备份你的/ 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。
就我而言:
我有同样的问题。但我发现我的高清已经满了。
$ 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并再次运行
要帮助没有完整磁盘的其他人来解决此问题,请首先检查您的错误日志(对我来说,路径是在我的/etc/mysql/my.cnf
文件中给出的):
tail /var/log/mysql/error.log
我的问题原来是一些网络路由器重新配置后分配的新IP地址,所以我需要更改bind-address
变量。
我的问题是内存不足。 Digital Ocean为Ubuntu添加交换内存提供了很好的指导:https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04
这解决了这个问题并使我能够重新启动否则无法启动的Mysql。
重新安装将起作用,因为它会将所有值重置为默认值。最好找到真正的罪魁祸首(my.cnf编辑错误确实发生了,例如在mysql调优期间出现错误/过时的参数建议。)
如果您怀疑my.cnf中的某些值是错误的,那么这是mysql诊断:运行mysqld以显示结果。
sudo -u mysql mysqld
然后,修复从屏幕弹出的所有my.cnf键错误,直到mysqld成功启动。
然后使用重启它
sudo service mysql restart
在大多数情况下,只需清除mysql-server软件包并重新安装它就可以完成这项工作。
跑,
sudo apt-get purge mysql-server-5.1 mysql-common
其次是
sudo apt-get install mysql-server
在我的情况下,它只是因为磁盘已满。只需清除一些磁盘空间并重启,一切都很好。
这条线确实解决了我的问题,
sudo apt clean
如果已编辑,请检查文件权限
失败:
$ 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
给定的解决方案需要足够的免费硬盘,实际问题是硬盘内存不足。因此,如果您没有备用服务器或可用磁盘空间,则需要其他一些替代方案。
当我运行批量下载到MySQL时,我遇到了生产服务器(Linode VPS)的这个错误。它不是一个合适的解决方案,而是非常快速的修复,我们经常需要在生产中快速提升。
就我而言,我这样做:
sudo nano /etc/mysql/my.cnf
bind
名称和IP