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

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

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


当前回答

Ubuntu 14.04 (Trusty Tahr)也是如此。

如果您已经安装了XAMPP,安装MySQL -server并不是解决方案,因为您将访问另一个MySQL!

您必须使用正确的套接字才能访问。通常是这样的:

/opt/lampp/var/mysql/mysql.sock

相反,把它改为:

/var/run/mysqld/mysqld.sock

其他回答

以我为例,我做了一些研发工作:

我能够连接到MySQL使用

root-debian#mysql -h 127.0.0.1 -u root -p

但是在mysql中-u root -p行不通。

我在my.cnf中没有找到任何绑定地址。所以我注释了参数socket=/var/lib/mysql/mysqld。袜子在我的。cnf导致我登录的问题。

重新启动服务后,一切正常:

root@debian:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.19 MySQL Community Server (GPL)

而不是使用localhost:

mysql -u myuser -pmypassword -h localhost mydatabase

使用127.0.0.1

mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase

(注意,-p和mpassword之间没有空格)

享受:)

根据我的经验,你需要先检查服务器是否正在运行,然后再尝试配置MySQL。最后一个解决方案是重新安装MySQL。

我也遇到过类似的问题。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,

我通过在mysqld部分([mysqld])中删除/etc/mysql/my.conf中的这一行来解决这个问题:

default-character-set=utf8

重新启动,它可以正常工作。