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

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

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


当前回答

我也遇到了同样的问题,问题是mysql服务器已经安装,但它没有运行。

试, 启动mysql服务 或 启动mysql

其他回答

在我的例子中,默认端口3306正在被其他进程使用,因此它没有启动。在我停止了其他服务,并做了sudo服务mysql启动后,它工作得很好。顺便说一句,您可以使用sudo lsof -Pn -iTCP:3306之类的东西来查看谁可能正在使用该端口。

我通过杀死mysql进程来解决这个问题:

ps -ef | grep mysql
kill [the id]

然后我再次启动服务器:

sudo /etc/init.d/mysql restart

但是start也同样有效:

sudo /etc/init.d/mysql start

然后我以管理员身份登录,就搞定了。

在我的情况下,我错过了mysql服务器。所以在通过sudo apt-get install mysql-server安装它之后,我又可以连接了。

MySQL服务器进程没有创建套接字,或者客户端在错误的地方寻找套接字。

我的第一个建议是检查MySQL服务器是否正在运行。第二个建议可能是,MySQL服务器是否运行在另一个主机上?如果是这样,在终端的MySQL客户端中添加-h <hostname>标志。

如果MySQL确实在运行,并且在本地运行,请检查my.cnf文件。应该有这样的线条

socket = /var/run/mysqld/mysqld.sock

看看是否与你在文章中提到的套接字位置相匹配。

根据经验,我想说最可能的情况是你的MySQL服务器根本没有运行,或者与你在终端上运行MySQL客户端不在同一台主机上运行。

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

sudo systemctl start mysql

or

sudo systemctl restart mysql