Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误2002(HY000):Can';t通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock';(2)_Mysql_Phpmyadmin_Lamp_Forgot Password_Mysql Error 2002 - Fatal编程技术网

错误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 -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,

我尝试了以下步骤:

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

  • 根据经验,我认为您需要先检查服务器是否正在运行,然后再尝试配置MySQL。最后一个解决方案是重新安装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
    ,然后问题就可以解决了。

    在我的情况下,磁盘已满,mysqld无法再启动

    尝试重新启动mysql服务

    > service mysql restart
    

    如果它不识别
    stop
    命令,那么肯定是磁盘空间。您应该在分配的分区
    mysql
    中留出一些空间,或者使磁盘更大

    检查磁盘空间

    > df -h
    
    如果您已在Linux计算机上安装,请尝试将
    my.cnf
    文件从
    /opt/lampp/etc/my.cnf
    复制到
    /etc/my.cnf

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

    检查my.cnf中的
    “bind address”
    参数

    否则请尝试使用以下命令:

    mysql -h 127.0.0.1 -P 3306 -u root -p
    
    • -h表示主机
      127.0.0.1
      ,即本地主机

    • -p(注意-p为大写)表示端口
      3306
      ,即MySQL的默认端口


    在我的例子中,默认端口3306正被其他进程使用,因此它没有启动。在我停止了另一个服务并启动了
    sudo服务mysql
    之后,它工作得很好。顺便说一句,您可以使用sudo lsof-Pn-iTCP:3306之类的工具查看谁可能正在使用该端口。

    我也遇到了这个问题,但我只是:

    sudo service mysql restart 
    

    它对我有效。

    我通过执行以下命令修复了此问题:

    mysql.server start
    
    如果您在mac上使用brew安装mysql,只需使用:

    brew services start mysql
    

    我想每当你出错的时候

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

    我建议首先检查您的
    mysql
    守护进程是否正在运行。。。大多数情况下,默认情况下它不会运行。您可以通过
    /etc/init.d/mysqld status
    检查它

    如果它没有运行,则首先启动它:

    .../etc/init.d/mysqld start.
    

    我打赌它会有110%的效果。

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

    sudo chmod 755 /var/lib/mysql/mysql
    

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

    在我的例子中,它通过做一些研发工作来工作:

    我可以使用

    root-debian#mysql -h 127.0.0.1 -u root -p
    
    但是它不适用于mysql-uroot-p

    我在my.cnf中未找到任何
    绑定地址。因此我在
    my.cnf
    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