MySQL 突然停止 LAMP 堆栈

标签 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 以及下面建议的 killall mysqld(以及 killall mysql 只是为了好玩)来杀死 mysql 进程。通过这些尝试没有找到进程。

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

最佳答案

你用过吗

killall mysqld

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

或者你可以尝试删除 mysql.sock 使用

rm /var/run/mysqld/mysqld.sock

然后您只需要通过启动服务或运行来再次运行 MySQL 服务器

mysqld

它应该为自己创建一个新的/var/run/mysqld/mysqld.sock 并且一切都会顺利进行。 只是一个想法:这可能是因为计算机没有正确关闭电源,或者 MySQL 有点困惑。

关于MySQL 突然停止 LAMP 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13215373/

相关文章:

php - 无法使用 PDO 和 PHP 删除带有 bindParam 的表

linux - 您如何在 Web 开发服务器上上传/编辑文件?

c - Linux 内核库

linux - 如何在 Linux 中的 Adob​​e AIR NativeProcess 中获取主机名?

apache - 如何禁用每个目录的保持事件

php - 检查图像修改时间的 HTACCESS 图像缓存规则

java - 数据库try-catch block 代码不执行

mysql - 如何在 MySQL 表中查找所有大写字符串?

php - Apache2.4.11 虚拟主机配置不工作

mysql - SQL查询: Queries depending on previous queries and merging results