我一直在 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 文件(权限被拒绝)。