MySQL ERROR 2002 错误六种可能及解决方案

A kitten
蒋川
B 端产品经理,卡拉云联合创始人
阅读时长 1 分钟

MySQL ERROR 2002 错误六种可能及解决方案

导致 MySQL ERROR 2002 错误的情况特别多,有可能是服务器没启动,也可能是找不到 mysql.sock 文件,又或者是文件夹权限问题。本教程把所有可能会导致 ERROR 2002 错误的问题都列出来了,并针对每种错误写了对应的解决方案。大家可以按顺序逐一排查,方能修复 2002 错误。

Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)

系统无法通过 socket 连接到 MySQL 服务器

解决方案 1:检查 MySQL 服务是否正在运行

首先检查 mysqld 服务是否正在运行。要检查 MySQL 是否正在运行,请运行以下命令:

mysqladmin -u kalacloud -p status

查看 mysql 是否启动

返回信息,MySQL 可能没有启动。

我们可以使用以下命令启动 MySQL 服务器

service mysqld start

重新启动服务后,再次尝试连接到 MySQL,看看 ERROR 2002 错误是否修复。

扩展阅读:《10 款 MySQL GUI 管理工具横向测评 - 免费和付费到底怎么选?》

解决方案 2:使用 127.0.0.1 连接 MySQL

当我们使用 localhost 连接 MySQL 时,系统会使用 socket 连接器方式建立连接 。

如果我们使用本地 IP 地址,即 127.0.0.1 那么系统会走 TCP/IP 方式建立连接。

所有我们可以通过使用本地 IP 的方式,暂时绕开 socket 连接方式,使用 TCP / IP 先登录再说。

扩展阅读:《如何远程连接 MySQL 数据库,开启阿里云允许外网连接教程

解决方案 3:添加 my.cnf 配置文件中 mysql.sock 位置

有可能你的配置文件中没有说明 mysql.sock 文件位置,所以要在配置文件中添加以下,MySQL 配置文件一般会放在 /etc 目录里,详情可看我写的另一篇文章《MySQL 配置文件 my.cnf / my.ini 逐行详解》这篇中详细介绍了 my.cnf 每行的意义。

打开 my.cnf (Linux) / my.ini (Windows) 配置文件,在文件中,找到对应的位置,添加以下代码。

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

然后重启 MySQL 服务器,让刚刚编辑的配置文件生效

sudo systemctl restart mysql

扩展阅读:《如何在 MySQL 中查找和删除重复记录?

解决方案 4:查看 mysql.sock 是否在默认位置

MySQL ERROR 2002 错误还有一种可能是在配置文件的指定位置中,没有找到 mysql.sock 文件,这个文件可能被放到了其他文件夹,我们需要手动找到它,并把它与默认位置连接起来

这时候我们需要手动找到并使用符号链接他们。

假设 mysql.sock 存放在 /tmp/mysql.sock 中:

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

然后重启 MySQL 服务器:

sudo systemctl restart mysql

扩展阅读:《如何在 MySQL 中导入导出 SQL 数据、Excel、CSV

解决方案 5: MySQL 文件夹权限问题

MySQL ERROR 2002 错误还有一种可能性是 MySQL 的文件夹权限不对,我们可以尝试修改文件夹权限,再来试试错误是否排除:

sudo chmod -R 755 /var/lib/mysql/

然后重启 MySQL 服务:

service mysqld start

试试看,是否错误是否排除。

扩展阅读:《MySQL 重置自增 ID (AUTO_INCREMENT)教程 - 完美保留表数据的终极解决方案》

解决方案 6:多个 MySQL 实例

导致 ERROR 2002 错误还有可能是因为服务器中有多个 MySQL 实例在运行,我们可以通过以下命令查看 MySQL 服务情况

ps -A|grep mysql

grep 查看服务进程

可以看到有两个 mysql 进程,先统统杀掉

查看进程是否已经 kill

我们再检查一下:

ps -A|grep mysql

grep 检查进程

两个 MySQL 进程都已经被 kill 掉了。

最后,重启启动 MySQL 服务器,再来试试使用 socket 连接服务器

sudo service mysql restart
mysql -u root -p

重新启动服务后,再次尝试连接到 MySQL,看看 ERROR 2002 错误是否修复。

扩展阅读:《如何查看 MySQL 数据库、表、索引容量大小?找到占用空间最大的表》

总结

ERROR 2002 是比较常见的 MySQL,但因为多种因素都会导致这个错误,排查起来比较难。

顺便推荐一下我和小伙伴一起开发的卡拉云。只要你会写 SQL 无需会任何前端,也可以快速搭建后台管理工具,比如用户权限管理系统、销售管理系统、学生信息系统、财务对账系统,还可以搭建一套属于自己的数据查询看板,一键分享给协作组的同学使用,再也不用担心自己沦为人肉查询机。

使用卡拉云轻松搭建企业内部工具

卡拉云不仅可以像命令行一样灵活,还可根据自己的工作流,定制开发。无需繁琐的前端开发,只需要简单拖拽,即可快速搭建企业内部工具。数月的开发工作量,使用卡拉云后可缩减至数天,欢迎免费试用卡拉云

卡拉云可一键接入常见的数据库及 API

卡拉云可快速接入的常见数据库及 API,可根据公司工作流需求,轻松搭建数据看板,并且可分享给组内的小伙伴共享数据,仅需拖拽一键生成前端代码,简单一行代码即可映射数据到指定组件中。

搭建数据看板,直接导出数据

卡拉云可直接添加导出按钮,导出适用于各类分析软件的数据格式,方便快捷。

下图为使用卡拉云在 5 分钟内搭建的「优惠券发放核销」后台,仅需要简单拖拽即可快速生成前端组件,只要会写 SQL,便可搭建一套趁手的数据库工具。

使用卡拉云在 5 分钟内搭建的「优惠券发放核销」后台

立即开通卡拉云,搭建属于自己的数据后台工具吧。

更多数据库相关教程可访问 卡拉云 查看。如果你还有什么疑问,欢迎一起讨论。我的微信 HiJiangChuan。

有关 MySQL 教程,可继续拓展学习:

© 2021 卡拉云 Built with ❤️ in Beijing

京ICP备15049164号-9