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

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

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


当前回答

如果您的Linux机器上安装了XAMPP,请尝试将my.cnf文件从/opt/lampp/etc/my.cnf复制到/etc/my.cnf

然后,再次运行mysql -u root…现在您应该有了正确的套接字,并且能够运行MySQL客户端。

其他回答

mysqld stop
mysql.server start

我也有这个问题,但这些答案都帮不了我。问题是不同的,但错误是由OP描述的。

我检查了MySQL的日志在/var/log/mysql,我看到了这个:

150309  5:03:19 [ERROR] /usr/sbin/mysqld: unknown variable   'lower_case_tables_names=1'

我打开/etc/mysql/my.cnf文件并注释掉#这一行。在此之后,我能够连接到数据库。

说实话,我不知道问题出在哪里。由于维护,linode服务器计划重新启动,这个错误突然出现。

我不能解释,但在kubuntu 12.04.2之后

Sudo apt-get autoremove linux-headers-3.2.0-37 linux-headers-3.2.0-37-generic

它开始起作用了

我在Ubuntu上有这个,正如我所发现的,有不止一个mysqld实例。

看起来上一个还没有完全停止,而新的已经开始了。运行/ etc / init。d/mysql stop'没有帮助,它总是返回'OK',并且在那之后会自动启动一个新实例:

        $ sudo /etc/init.d/mysql stop
         * Stopping MySQL database server mysqld        [ OK ] 
        $ pgrep mysql
        28315
        $ sudo /etc/init.d/mysql stop
         * Stopping MySQL database server mysqld        [ OK ] 
        $ pgrep mysql
        28570
        $ sudo /etc/init.d/mysql stop
         * Stopping MySQL database server mysqld        [ OK ] 
        $ pgrep mysql
        28763
        ..... etc ...

幸运的是,下面的命令已经解决了这个问题:

    $ sudo service mysql stop
    mysql stop/waiting

    $ ps -ef | grep mysql
    29841 26858  0 10:59 pts/8    00:00:00 grep --color=auto mysql <--- IT's gone ! 

之后,我能够再次启动mysql,并看到mysql。Sock已经创建成功。

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

sudo chmod 755 /var/lib/mysql/mysql

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