MySQL突然停止了LAMP堆栈

时间:2012-11-04 02:02:39

标签: mysql linux apache mysql.sock

我一直在Ubuntu设置上使用LAMP堆栈。

它一直工作正常,设置多个数据库一切正常,然后突然今天早上我开始从我正在使用的网页获取数据库错误,然后尝试访问PHPMyAdmin得到:

error #2002 Cannot log in to the MySQL server

我进入bash提示符并尝试以root用户身份登录,看到了什么,我得到了类似的错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) 

我在上面错误的指定路径中检查了它存在的mysql.sock文件。所有好的权限,并由mysql拥有。我重置权限以防万一,仍然得到相同的错误。

这是从BASH看到的文件:

srwxrwxrwx 1 mysql mysql 0 Oct 21 05:10 mysqld.sock

我以为我会重启服务,但在尝试停止,启动或重启服务时会遇到同样的错误。

这真让我感到困惑,我不是linux或其他任何专家,但是当我没有改变任何配置设置时,我不明白这是怎么突然发生的,并且它在过去的几个月里运行得非常好

我尝试重启Apache,并收到错误:

apache2: bad user name ${APACHE_RUN_USER}

我不认为这与MySQL的内容有关,但认为它可能涉及到。 Apache错误似乎更多的是设置,但知道我的运气懒惰导致我忽略了导致它崩溃的简单事情。

如何解决问题的任何帮助,更重要的是防止这种情况发生,将来会非常感激。

我尝试过基本Google搜索返回的大多数内容,并在此处查看。我还没有尝试删除和重新创建sock文件,但到目前为止大多数其他事情都没有用。

编辑:

我只是想补充一点,Apache服务器仍然正常运行,即使我在尝试停止并重新启动它时遇到错误也没有错。不依赖于MySQL的页面仍可正常加载。

我也试过通过搜索PID来杀死mysql进程,并且还按照killall mysqld(以及killall mysql for kicks)的建议。通过这些尝试找不到任何进程。

我不知道它是否相关,但即使使用超级用户,我也无法打开(在vim中)或查看mysqld.sock文件(权限被拒绝)。

3 个答案:

答案 0 :(得分:4)

您是否尝试过使用

killall mysqld

杀死服务器而不是仅仅结束服务,然后启动MySQL服务?

或者您可以尝试使用

删除mysql.sock
rm /var/run/mysqld/mysqld.sock

然后你只需要通过启动服务或运行

再次运行MySQL服务器
mysqld

它应该为自己创建一个新的/var/run/mysqld/mysqld.sock,一切都应该顺利。 只是一个想法:这可能发生了,因为计算机没有正确关机,或者MySQL可能有点混乱。

答案 1 :(得分:2)

在Ubuntu中创建一个微实例交换空间

  

dd if = / dev / zero = / swapfile bs = 1M count = 1024

     

mkswap / swapfile

     

swapon / swapfile

答案 2 :(得分:1)

你是否尝试重新启动mysql服务器

/etc/init.d/mysqld restart 
/etc/init.d/mysqld stop 
/etc/init.d/mysqld start