我在Ubuntu 12.04 LTS (Precise穿山甲)上安装了LAMP,然后在phpMyAdmin上设置根密码。我忘记密码了,现在无法登录。当我试图通过终端更改密码时,我得到:

错误2002 (HY000):无法通过套接字连接到本地MySQL服务器 ' / var /运行/ mysqld / mysqld。袜子”(2)

我该如何解决这个问题?我无法打开LAMP,卸载它或重新安装它。


当前回答

我的服务器上的简单解决方案:在使用MySQL数据库迁移到新的Debian 7服务器后,第二个本地IP地址127.0.1.1在我的hosts文件中丢失了。添加这个解决了警告:

echo -e "\n127.0.1.1       $(hostname)" >> /etc/hosts

其他回答

检查my.conf (/etc/mysql/my.cnf),看看bind-address是否设置为127.0.0.1。

如果不是,这可能会导致此问题。

当我停止mysql服务时,我得到了完全相同的错误,这里如何解决它:通过(重新)启动mysql使用这些命令:

sudo systemctl start mysql

or

sudo systemctl restart mysql

为了防止出现这个问题,您必须从命令行优雅地关闭服务器,而不是直接下电服务器。

shutdown -h now

这将在关闭机器之前停止正在运行的服务。

基于Centos,当你遇到这个问题时,一个额外的方法是移动mysql.sock:

mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

service mysqld start

重新启动服务将创建一个名为mqsql.sock的新条目

检查你是否拥有正确的权限:

sudo chmod 755 /var/lib/mysql/mysql

我也有同样的问题,这个方法对我很有效。这样做之后,我就可以启动MySQL了。

在我的例子中,问题是我所有数据库的页面损坏(检查mysql错误日志)。

我用强制恢复InnoDB解决了这个问题。诀窍是编辑/etc/mysql/my.cnf并添加

innodb_force_recovery = 4

略低于

[mysqld]

然后重新启动mysql。 在检查一切工作正常后,再把线移回来。