错误2002(HY000):Can';t通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock';(2)

错误2002(HY000):Can';t通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock';(2),mysql,phpmyadmin,lamp,forgot-password,mysql-error-2002,Mysql,Phpmyadmin,Lamp,Forgot Password,Mysql Error 2002,我安装在(精确穿山甲),然后设置根密码。我忘了密码,现在无法登录。当我试图通过终端更改密码时,我得到: 错误2002(HY000):无法通过套接字连接到本地MySQL服务器 “/var/run/mysqld/mysqld.sock”(2) 我怎样才能解决这个问题?我无法打开LAMP、卸载或重新安装它。不知何故,MySQL服务器进程没有创建套接字,或者客户端在错误的位置查找套接字 我的第一个建议是检查MySQL服务器是否正在运行。第二个建议可能是,MySQL服务器是否在另一台主机上运行?如果是这样

我安装在(精确穿山甲),然后设置根密码。我忘了密码,现在无法登录。当我试图通过终端更改密码时,我得到:

错误2002(HY000):无法通过套接字连接到本地MySQL服务器 “/var/run/mysqld/mysqld.sock”(2)


我怎样才能解决这个问题?我无法打开LAMP、卸载或重新安装它。

不知何故,MySQL服务器进程没有创建套接字,或者客户端在错误的位置查找套接字

我的第一个建议是检查MySQL服务器是否正在运行。第二个建议可能是,MySQL服务器是否在另一台主机上运行?如果是这样,请将
-h
标志添加到终端中的MySQL客户端

如果MySQL确实在运行,并且在本地运行,请检查您的
my.cnf
文件。应该有这样一条线

socket = /var/run/mysqld/mysqld.sock
看看它是否与您在帖子中提到的套接字位置匹配


根据经验,我认为最有可能的情况是MySQL服务器根本没有运行,或者与从终端运行MySQL客户端的主机不在同一台主机上运行。

不知何故,MySQL服务器进程没有创建套接字,或者客户端在错误的位置查找套接字

我的第一个建议是检查MySQL服务器是否正在运行。第二个建议可能是,MySQL服务器是否在另一台主机上运行?如果是这样,请将
-h
标志添加到终端中的MySQL客户端

如果MySQL确实在运行,并且在本地运行,请检查您的
my.cnf
文件。应该有这样一条线

socket = /var/run/mysqld/mysqld.sock
看看它是否与您在帖子中提到的套接字位置匹配

根据经验,我认为最有可能的情况是您的MySQL服务器根本没有运行,或者与您从终端运行MySQL客户端的主机不在同一台主机上运行。

尝试以下方法:

mysql -h 127.0.0.1 -P 3306 -u root -p <database>
可能这只是
my.cnf
文件中
/etc/where
中的一个错误配置(取决于具体情况)。

尝试以下操作:

mysql -h 127.0.0.1 -P 3306 -u root -p <database>

可能这只是
my.cnf
文件中的一个错误配置,在
/etc/where
(取决于具体情况)。

我也遇到了类似的问题。mysql不会启动:

sudo service mysql start
start: Job failed to start
如果我禁用了apparmor:

sudo aa-complain /etc/apparmor.d/*
问题消失了。问题是mysqld试图访问/run/mysqld/mysqld.sock,但apparmor配置文件只授予/var/run/mysqld/mysqld.sock权限(/var/run与/run是符号链接的,所以它们实际上是相同的)。不确定mysqld为什么不使用var路径,因为所有配置文件中都设置了var路径,但您可以通过将以下内容添加到/etc/apparmor.d/usr.sbin.mysqld中来解决此问题

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

我也有类似的问题。mysql不会启动:

sudo service mysql start
start: Job failed to start
如果我禁用了apparmor:

sudo aa-complain /etc/apparmor.d/*
问题消失了。问题是mysqld试图访问/run/mysqld/mysqld.sock,但apparmor配置文件只授予/var/run/mysqld/mysqld.sock权限(/var/run与/run是符号链接的,所以它们实际上是相同的)。不确定mysqld为什么不使用var路径,因为所有配置文件中都设置了var路径,但您可以通过将以下内容添加到/etc/apparmor.d/usr.sbin.mysqld中来解决此问题

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

我尝试了以下步骤:

  • 以超级用户身份登录或使用sudo
  • 使用打开
    /etc/mysql/my.cnf
  • 查找
    绑定地址
    ,并将其值更改为数据库服务器主机的IP地址。对我来说,这是
    localhost
    127.0.0.1
  • 保存并关闭文件
  • 返回终端并执行
    sudo服务mysql start

  • 这对我很有效。

    我尝试了以下步骤:

  • 以超级用户身份登录或使用sudo
  • 使用打开
    /etc/mysql/my.cnf
  • 查找
    绑定地址
    ,并将其值更改为数据库服务器主机的IP地址。对我来说,这是
    localhost
    127.0.0.1
  • 保存并关闭文件
  • 返回终端并执行
    sudo服务mysql start

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

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

    如果您是最近安装的,您应该确认您的安装是否是安装服务器。。。作为mysql-server-5.5。。也许你只安装了“mysql”。。这是唯一的客户端而不是服务器。

    如果您的安装是最近的,您应该确认您的安装是否是安装服务器。。。作为mysql-server-5.5。。也许你只安装了“mysql”。。这是唯一的客户端而不是服务器。

    我曾经遇到过这个问题,并通过安装
    mysql服务器解决了它,因此请确保您安装了
    mysql服务器,而不是
    mysql客户端或其他什么

    该错误意味着文件
    /var/run/mysqld/mysqld.sock
    不存在,如果未安装
    mysql服务器
    ,则该文件将不存在。因此,在这种情况下,请使用

    sudo apt-get install mysql-server
    
    但是如果mysql服务器已经安装并且正在运行,那么您需要检查配置文件

    配置文件包括:

    /etc/my.cnf
    /etc/mysql/my.cnf
    /var/lib/mysql/my.cnf
    

    /etc/my.cnf
    中,套接字文件配置可能是
    /tmp/mysql.sock
    ,在
    /etc/mysql/my.cnf
    中,套接字文件配置可能是
    /var/run/mysqld/mysqld.sock
    。因此,请删除或重命名
    /etc/mysql/my.cnf
    ,让mysql使用
    /etc/my.cnf
    ,然后问题就可以解决了。

    我曾经遇到过这个问题,并通过安装
    mysql服务器解决了它,所以请
    
    sudo service mysql restart 
    
    mysql.server start
    
    brew services start mysql
    
    .../etc/init.d/mysqld start.
    
    sudo chmod 755 /var/lib/mysql/mysql
    
    root-debian#mysql -h 127.0.0.1 -u root -p
    
    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)
    
    ps -ef | grep mysql
    kill [the id]
    
    sudo /etc/init.d/mysql restart
    
    sudo /etc/init.d/mysql start
    
    apt-get remove --purge mysql\*
    
    apt-get install mysql-server mysql-client
    
    apt-get install php5-fpm php5-mysql
    
    sudo apt-get purge mysql-client-core-5.6
    
    sudo apt-get autoremove
    
    sudo apt-get autoclean
    
    sudo apt-get install mysql-client-core-5.5
    
    sudo apt-get install mysql-server  
    
    ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
    service mysql restart
    
    mysql -u myuser -pmypassword -h localhost mydatabase
    
    mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase
    
    sudo yum install mysql-server
    sudo service mysqld restart
    
     mysql -u root -p
    
    sudo /etc/init.d/mysql stop
    
    sudo /etc/init.d/mysqld stop
    
    sudo mysqld_safe --skip-grant-tables &
    
    mysql -u root
    
    use mysql;
    
    -- MySQL version < 5.7
    update user set password=PASSWORD("mynewpassword") where User='root';
    
    -- MySQL 5.7, mysql.user table "password" field -> "authentication_string"
    
    update user set authentication_string=password('mynewpassword') where user='root';
    
    flush privileges;
    
    quit
    
    sudo /etc/init.d/mysql stop
    ...
    sudo /etc/init.d/mysql start
    
        sudo /etc/init.d/mysqld stop
        ...
        sudo /etc/init.d/mysqld start
    
    mysql -u root -p
    
    service mysql restart
    service mysql reload
    
    $ sudo service mysql start   
    
    $ sudo mysql -u root -p          (put user password if required )
    
    sudo service mysql start