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

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

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


当前回答

发生此问题是因为MySQL服务器未启动。使用以下命令检查活动状态。

service mysql status

如果active状态为stop,请尝试启动MySQL服务器。

service mysql start

其他回答

This error can also occur if you try to change the directory where the database is stored, but imput the wrong directory in the configuration file (like a typo in the second drive as D instead of the accurate D_). Instead of telling you the typo directory does not exist, it will tell you that you lack permission to access it (leading you to try to change the permissions for the typo directory, which it will let you do). So if you get this error while changing directories, double check the configuration file and make sure you don't have a typo.

在我的情况下,我有文件损坏在我的mysql数据文件夹

mv /var/lib/mysql /var/lib/mysql_old

因此,当我有备份时,我将目录移动到“_old”,并再次启动docker。它用干净的数据创建了一个新文件夹mysql,套接字工作了。

对我来说,mysql没有运行,所以我用

sudo /etc/init.d/mysql start

我也遇到过类似的问题。Mysql无法启动:

sudo service mysql start
start: Job failed to start

如果我禁用了apparmor:

sudo aa-complain /etc/apparmor.d/*

问题解决了。问题是mysqld试图访问/运行/mysqld/mysqld。Sock,但是apparmor配置文件只允许/var/run/mysqld/mysqld. SockSock (/var/run是符号链接到/run的,所以它们实际上是相同的)。不确定为什么mysqld不使用var路径,因为这是在所有配置文件中设置的,但你可以通过在/etc/ apparor .d/usr.sbin.mysqld中添加以下内容来解决这个问题

/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock rw,

我也遇到了这个问题,但我刚刚遇到了:

sudo service mysql restart 

这对我很管用。