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

我得到这个错误

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysql.sock' (2)

即使我已经设法通过命令行在Ubuntu中启动MySQL

 mysql stop/waiting mysql start/running, process 17691 

但是,当试图访问该网站时,我得到一个数据库连接错误以及上述错误,当试图通过mysql -u root -p访问mysql -u root -p

我检查了我的错误日志,我看到了这一点

  131029 12:53:34 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be remo$ 131029 12:53:34 [Note] Plugin 'FEDERATED' is disabled. 131029 12:53:34 InnoDB: The InnoDB memory heap is disabled 131029 12:53:34 InnoDB: Mutexes and rw_locks use GCC atomic builtins 131029 12:53:34 InnoDB: Compressed tables use zlib 1.2.3.4 131029 12:53:34 InnoDB: Initializing buffer pool, size = 26.0G 131029 12:53:36 InnoDB: Completed initialization of buffer pool 131029 12:53:36 InnoDB: highest supported file format is Barracuda. 131029 12:53:38 InnoDB: Waiting for the background threads to start 131029 12:53:39 InnoDB: 5.5.34 started; log sequence number 5146431500 131029 12:53:39 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306 131029 12:53:39 [Note] - '0.0.0.0' resolves to '0.0.0.0'; 131029 12:53:39 [Note] Server socket created on IP: '0.0.0.0'. 131029 12:53:39 [Note] Event Scheduler: Loaded 0 events 131029 12:53:39 [Note] /usr/sbin/mysqld: ready for connections. Version: '5.5.34-0ubuntu0.12.04.1-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu) 

这是我第一次看到这个错误,我不确定如何解决这个问题,请在这里帮我一下。

谢谢

UPDATE

好吧,我试过glglgl的解决scheme,重新启动后,我在错误日志中得到以下内容:

  131029 13:17:36 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be remo$ 131029 13:17:36 [Note] Plugin 'FEDERATED' is disabled. 131029 13:17:36 InnoDB: The InnoDB memory heap is disabled 131029 13:17:36 InnoDB: Mutexes and rw_locks use GCC atomic builtins 131029 13:17:36 InnoDB: Compressed tables use zlib 1.2.3.4 131029 13:17:36 InnoDB: Initializing buffer pool, size = 26.0G 131029 13:17:38 InnoDB: Completed initialization of buffer pool 131029 13:17:38 InnoDB: highest supported file format is Barracuda. 131029 13:17:40 InnoDB: Waiting for the background threads to start 131029 13:17:41 InnoDB: 5.5.34 started; log sequence number 5146431500 131029 13:17:41 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306 131029 13:17:41 [Note] - '127.0.0.1' resolves to '127.0.0.1'; 131029 13:17:41 [Note] Server socket created on IP: '127.0.0.1'. 131029 13:17:41 [Note] Event Scheduler: Loaded 0 events 131029 13:17:41 [Note] /usr/sbin/mysqld: ready for connections. Version: '5.5.34-0ubuntu0.12.04.1-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu) 

我的问题解决了检查过程是否在Ubuntu 12.04上运行

 ps ax | grep mysql 

那么答案就是它没有运行,所以我做了

 sudo service mysql start 

或者试试

 sudo /etc/init.d/mysql start 

首先请确认安装了mysql-server。 当安装mysql-server时,我有同样的错误,但以某种方式损坏。 我完全卸载mysql并重新安装它诀窍。

 sudo apt-get remove --purge mysql* sudo apt-get autoremove sudo apt-get autoclean sudo apt-get install mysql-server mysql-client 

我在我的系统上安装xampp时遇到同样的问题。 mysql服务器查找/var/run/mysqld/mysqld.sock,但mysql.sock文件在xampp文件夹中,所以我用

  find / -name '*.sock' 

找到mysql.sock文件然后使用

 ln -s <the file location> /var/run/mysqld/mysqld.sock 

获取* .sock文件的链接,然后尝试MySQL,它运行没有错误。 希望这可以解决你的问题。

请记住,如果该目录不存在,请创建该目录。

客户端应该与服务器设置一致。

 [client] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 

这花了我很长时间才弄清楚,但你可以尝试相同的 –

1 – 更新和升级

 sudo apt-get update sudo apt-get upgrade 

2 – 清除MySQL服务器和客户端(如果已安装)。

 sudo apt-get purge mysql-server mysql-client 

3 – 安装MySQL服务器和客户端新鲜

 sudo apt-get install mysql-server mysql-client 

4 – 测试MySQL

 mysql -u root -p > enter root password 

***应该在/var/run/mysqld/mysql.sock中找不到套接字

4 – 用vi的nano配置mysqld.cnf

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

将bind-address从127.0.0.1更改为localhost

 bind-address = localhost 

**写入和退出

5 – 重新启动MySQL

 sudo /etc/init.d/mysql restart 

6 – 检查mysql

 mysql -u root -p > enter root password Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 server version: 5.7.13-0ubuntu0.16.04.2 (Ubuntu) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 

你现在应该进入mysql cli。

希望这可以帮助

Code.Ph0y

最近我遇到了这个错误在我的mysql ERROR 2002 (HY000)

无法通过套接字连接到本地MySQL服务器

'/var/lib/mysql/mysql.sock'(111)

因为我忘记开始我的mariadb。 只要在你的终端上输入这个命令。

 systemctl start mariadb.service 

改变my.cnf后,我遇到了同样的问题。 我解决了这个问题的后续步骤。

首先:找到error.log的位置,看看'my.conf'。

第二:我抬头看了error.log,我发现下一次按摩,

“未知变量”default -……'“”“mysqld_safe从/ var / lib / mysql启动mysqld darmon”

第三:我将my.conf重置为默认值,然后重新启动,此问题已解决。

我希望这有帮助。

我已经按照惠灵顿Lorindo张贴。 我的问题解决了。

步骤 1.在终端中运行

ps ax | grep mysql

结果是

11200? Ssl 0:01 / usr / sbin / mysqld

11514 pts / 0 S + 0:00 grep mysql

步骤 2.再次键入此

sudo服务mysql启动

问题解决了。

谢谢惠灵顿Lorindo

你可能会错过mysql-server。 安装使用

 sudo apt-get install mysql-server 

同样的错误也发生在我的系统中。 我不得不删除MySQL服务器并重新安装它。 没有其他的方法。 尝试运行这些命令它工作:

  1. sudo apt-get清除mysql服务器
  2. sudo apt-get autoremove
  3. sudo apt-get安装mysql-server

这对我工作

 sudo /etc/init.d/mysql start 

首先我试过这个,但我不明白为什么它不能这样工作

 sudo service mysql start 

这是一个不同的解决方案提出的旧脚步,但没有一个为我工作。 我正在添加这个答案,希望能帮助一个和我一起奋斗一段时间的人。

我已经检查了所有现有的答案和所有现有的解决方案,但对我来说,这个问题是在var/run/mysql文件夹上的不正确的用户权限。

我检查了该文件夹的用户权限,并将其设置为root 。 一旦我改变到mysql:mysql的问题已经没有了。

所以进入/var/run/mysqld并将用户权限更改为:

 chown -R mysql:mysql . 

我有这个问题。

这个过程为我工作:

 sudo apt-get remove --purge mysql* sudo apt-get autoremove sudo apt-get autoclean sudo apt-get install mysql-server mysql-client 

确保在删除过程中选择不删除数据库。

我也遇到了这个问题。 mysql -u root -p输入密码: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

然后我找到原因是我的selinux正在执行,我禁用它,然后重新启动mysqld ,它的作品,希望有帮助。

如果修改my.cnf文件中的max_connections ,还有另一个机会得到这个特定的错误。

我也遇到了同样的错误,没有让我登录到MySQL服务器。 在我的情况下,问题是,我不得不增加max_connections大小

/etc/mysql/my.cnf

 set-variable = max_connections = 5000 

由于这个原因,当我盯着MySQL服务器的第二天抛出这个错误

 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

my.conf文件中删除set-variable = max_connections = 5000段的技巧。 在删除了特定的段之后,使用了下面的命令 。 MySQL服务器启动并像以前一样运行。

 sudo /etc/init.d/mysql start 

在Debian上,这对我来说是一个绑定问题,所以帮助将bind-addresslocalhost更改为0.0.0.0。

 vim /etc/mysql/my.cnf 

bind-address = 0.0.0.0

如果你仔细看,你会看到不同之处:

  • 服务器侦听/var/run/mysqld/mysqld.sock
  • 客户端尝试连接到/var/run/mysqld/mysql.sock

你必须调整一个或另一个。

两个主要原因:

1)没有安装mysql-server! 你必须安装它(mysql-server而不是mysql-client)并运行它。

2)默认安装并运行。 所以,不可能通过Xampp或Lampp再次运行它。 你必须停止它:sudo服务mysql停止

那么你可以通过Xampp开始它。 可以用这个代码来检查它是否正在运行:sudo netstat -tap | grep mysql

如果你看到这样的结果:tcp 0 0 localhost:mysql LISTEN 1043 / mysqld

这意味着它运行正常。

请确保/ etc /中的my.cnf文件中的绑定地址配置选项与localhost或虚拟服务器的IP地址相同。 再加上检查以确保用于创建套接字文件的目录已经被很好地指定。

如果问题与您有关,这将提供一个替代解决方案。 如果您的磁盘驱动器已满,则MYSQL服务器(以及大多数其他程序)无法启动。 删除文件和文件夹以允许Mysql服务器启动。

简单:运行这些代码:::

  1:: ls -lart/var/run/my* 2::mkdir /var/run/mysqld 3::touch /var/run/mysqld/mysqld.sock 4:ls -lart /var/run/mysqld 5::chown -R mysql /var/run/mysqld 6::ls -lart /var/run/mysqld REstart your mysql server 

然后最后输入mysql -u root或者mysql -u root -p并按回车键。 谢谢

在我的情况下,问题是我已经添加了“default-character-set = utf8”my.cnf,这是破坏文件。 改为“character_set_server = utf8”。 这应该解决它,希望这有助于。

请注意,在使用apt-get upgrade升级我的Ubuntu 14.04发行版之后,我遇到了这个麻烦。 我不得不彻底清除mysql-servermysql-client并重新安装它来解决这个问题。

 sudo apt-get autoremove sudo apt-get autoclean sudo apt-get purge mysql-server mysql-client sudo apt-get install mysql-server mysql-client 

希望这可以帮助。

由于在my.cnf文件中进行了一些不必要的更改,将会发生此问题。 尝试将/etc/mysql/my.cnf与正在运行的mysql服务器my.cnf文件之一区/etc/mysql/my.cnf来。

我刚刚用新的my.cnf文件替换了/etc/mysql/my.cnf文件,这对我/etc/mysql/my.cnf

我也遇到了这个错误,花了差不多3个小时才找到它。

首先,试着回忆一下你对你的conf文件所做的修改,然后撤消修改并保存文件并启动mysql。 如果您想对conf文件进行任何更改,请停止mysql服务器,然后更改所需的值并重新启动mysql。

发生此错误的原因是对conf文件进行了错误(错误的关键字或赋值错误)更改。 大多数情况下,即使您重新启动运行服务器的计算机,也会发生此错误,因为服务器已停止,在这种情况下,请启动mysql服务器。

我有同样的问题,并试图在这里发布的所有解决方案如:

 sudo apt-get autoremove mysql-server 

但不幸的是它在Ubuntu 16.04上不适用于我。 要卸载正确的软件包,您需要:

 sudo apt-get remove mysql- 

当你试图使用tab自动完成命令时,它会列出下面的包:

 mysql-client mysql-client-core-5.7 mysql-server mysql-server-core-5.7 mysql-workbench mythes-en-us mysql-client-5.7 mysql-common mysql-server-5.7 mysql-utilities mysql-workbench-data 

显然选择mysql-server-core-5.7所以它会是:

 sudo apt-get remove mysql-server-core-5.7 

现在你可以卸载所有的MySQL,并使用johnny的这个命令重新安装:

 sudo apt-get remove --purge mysql* sudo apt-get autoremove sudo apt-get autoclean sudo apt-get install mysql-server mysql-client 

现在我解决了它,错误是无效的。

你必须这样做:

 ls -lart /var/run/mysqld/ mkdir /var/run/mysqld touch /var/run/mysqld/myssqld.sock ls -lart /var/run/mysqld/ chown -R mysql /var/run/mysqld/ ls -lart /var/run/mysqld/ /etc/init.d/mysql restart 

然后访问像这样:

 mysql -u root -p mysql> show databases; 
 rm -rf mysql.sock 

服务mysqld重启