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

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

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


当前回答

在/etc/mysql/my.cnf中,检查最后一行是:

!includedir /etc/mysql/conf.d/

其他回答

以下是对我有效的方法:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysql restart

这将创建一个链接。

我在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已经创建成功。

解决方案1 清除(或删除如果你想保留数据库)任何mysql包,重新重复安装:

sudo apt purge "mysql*"

-Autoremove包

sudo apt autoremove

-停止apparmor服务

sudo systemctl stop apparmor

-让apparmor放弃它的配置文件(我以为用stop就够了,但对我来说不是。systemctl不起作用)

sudo service apparmor teardown

重新安装mysql服务器

sudo apt install mysql-server

安装apparmor-utils,在apparmor中为mysql创建一个允许mysql运行的配置文件

sudo apt install apparmor-utils

检查mysql-server的状态(必须是Active(running))

sudo systemctl status mysql

在apparmor中生成mysql的配置文件

sudo aa-genprof mysql

在其他终端运行mysql(输入root密码)

mysql -u root -p

当apparmor在另一个终端生成配置文件时,在MySQL中执行-do操作

创建数据库中的食物

-切换到另一个终端,按“s”(提示说这是“扫描”)

-对你认为合适的apparmor的政策说“是”(我猜所有的mysql),说“是”按“a”允许

-按“f”完成apparmor配置文件

-重启apparmor服务

sudo systemctl start apparmor

检查一下你是否可以在其他终端上使用mysql

Mysql>exit

mysql -u root -p

如果一切正常,您可以从命令行使用mysql。

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

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

我也有同样的问题。如果您的MySQL服务被关闭,有时会发生这种情况。

所以你必须开始:

sudo service mysql start