MySQL_ERROR 2002 (HY000): Can't connect to local MySQL server through socket


报错

当我使用命令 mysql -uproot -proot 去连接 MySQL 服务器端的时候,发现了这个报错

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

问题描述

MySQL 在 Linux 创建连接的时候,需要一个 mysql.sock。它相当于一个配置文件。当你发现爆这个错的时候,大约有两种情况:

  1. 你没有打开这个文件的权限。可以通过命令行修改权限
  2. 这个文件不存在,你可以自己去创建

如果上述情况都不同,建议去查看 MySQL 的日志文件。(如果你没修改过的话,一般路径是:/var/log/mysqld.log)

解决方案

首先明确的是,无论是 MySQL 服务器还是客户端,都需要连接这个文件。所以在这个文件里边,肯定包括了 mysqldmysql 的相关参数。

mysqld

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

重点是 socket 的值。我们将 mysqld 的数据指定了一个路径,而其 sock 文件也将会在这个目录下,但是记得需要保证您有该文件夹的权限。

mysql

[client]

default-character-set=utf8

socket=/var/lib/mysql/mysql.sock

[mysql]

default-character-set=utf8

socket=/var/lib/mysql/mysql.sock

这个是 mysql 命令行及外来连接的一个配置。你会发现这个 sock 的路径和上面的 mysqld 路径是一样的。那这样就很好理解了,客户端的连接配置肯定与服务端一样,才能连接得上。

结尾

无论你是用了 mysql 还是 mysqld 得命令,我们都记得需要重启才能生效。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM