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

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

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


当前回答

在我的案例中,这只是因为mysql停止了,因为/etc/mysql/my.cnf中定义的/var/log/mysql文件夹丢失了创建后,我可以启动mysql,它像往常一样运行。

其他回答

我现在遇到了这个问题,并且解决了它。

尽管您安装了mysql-server,但是需要运行守护进程才能使客户机连接到它。

首先检查mysql服务器是否正在运行:

netstat -tap | grep mysql

你应该会看到这样的东西:

$ sudo netstat -tap | grep mysql
tcp        0      0 localhost:mysql         *:*          LISTEN     6639/mysqld     

如果您没有运行服务器,请使用以下命令启动守护进程:

/etc/init.d/mysql restart

如果已经安装,这应该可以解决您的问题。

您正在本地运行,这意味着您的客户端与服务器运行在同一台机器上。

确保你的Unix用户可以访问/读取/var/run/mysqld .sock:

ls -als /var
ls -als /var/run
ls -als /var/run/mysqld
ls -als /var/run/mysqld/mysqld.sock

如果没有,请与系统管理员或数据库管理员联系,以提供对这些目录的足够的读/执行访问,或将套接字文件移到其他位置。

你检查过LAMPP是否在运行吗?

sudo bash <path>/lampp start

对我来说,路径就是

sudo bash /opt/lampp/lampp start

我在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 touch /var/lib/mysql/.force_upgrade
sudo rcmysql restart

当我有这个问题的时候