4

我一直在 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 只是为了踢球)。通过这些尝试未找到任何进程。

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

4

3 回答 3

4

您是否尝试过使用

killall mysqld

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

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

rm /var/run/mysqld/mysqld.sock

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

mysqld

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

于 2012-11-04T02:29:25.760 回答
2

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

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

mkswap /交换文件

交换/交换文件

于 2014-11-28T07:01:27.567 回答
1

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

/etc/init.d/mysqld restart 
/etc/init.d/mysqld stop 
/etc/init.d/mysqld start
于 2012-11-04T02:52:45.733 回答