多个方法修复错误Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

2021年11月21日04:16:47 发表评论 2,657 次浏览

介绍

使用 MySQL 的用户在登录 MySQL 界面时可能会遇到错误'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock (2)'。如果 MySQL 无法访问mysqld.sock套接字文件,通常会出现此问题。

在本教程中,我们将讨论Can't connect to local MySQL server through socket”错误的潜在原因,并向你展示解决此问题的不同方法。

先决条件

  • 一个运行 Ubuntu 20.04 的系统
  • 具有 sudo 权限的用户帐户
  • 访问终端窗口/命令行
  • 已安装并准备使用的 MySQL 副本(通过我们的在 Ubuntu 20.04 上安装 MySQL的指南了解如何安装它)

解决'Can't connect to local MySQL server through socket'/var/run/mysqld/mysqld.sock'(2)'错误

有多种方法可以解决Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock (2)“错误。如果一种解决方案不起作用,请向下移动列表,直到找到解决问题的解决方案。

方法1:检查MySQL服务

1. Cant connect to local MySQL解决办法 - 检查 MySQL 服务的状态:

sudo systemctl status mysql
多个方法修复错误Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

2. 如果服务没有运行,请使用以下命令重新启动它:

sudo systemctl start mysql

3. 为防止此问题发生,请将 MySQL 服务设置为开机时自动启动:

sudo systemctl enable mysql
多个方法修复错误Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

方法2:验证mysqld.sock位置

Cant connect to local MySQL解决办法:如果MySQL找不到mysql.sock套接字文件,该Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)错误也会发生。

1.使用以下命令查找当前mysqld.sock位置find以列出系统上的所有套接字文件:

sudo find / -type s
多个方法修复错误Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

注意:在我们的 Linuxfind命令指南中了解有关此命令的更多信息。

2. 在你选择的文本编辑器中打开 MySQL 配置文件。在这个例子中,我们使用nano

sudo nano /etc/mysql/my.cnf

3. 然后,在 MySQL 配置文件的末尾添加以下几行:

[mysqld]
socket=[path to mysqld.sock]
[client]
socket=[path to mysqld.sock]

其中:

  • [path to mysqld.sock]:你在步骤 1 中找到的mysqld.sock套接字文件的路径。
多个方法修复错误Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

另一种方法是创建一个从mysqld.sock位置到/var/run/mysqld目录的符号链接:

ln -s [path to mysqld.sock] /var/run/mysqld/mysqld.sock

4. 按Ctrl+X关闭配置文件并键入Y并按Enter保存你所做的更改。

注意:通过我们的 Linuxln命令指南了解如何创建符号链接。

4、最后重启MySQL服务:

sudo systemctl restart mysql

方法3:检查MySQL文件夹权限

Cant connect to local MySQL解决办法:另一个潜在原因可能是 MySQL 服务由于权限限制而无法访问/var/run/mysqld目录:

1. 要解决此问题,请使用以下命令更改mysqld目录的权限设置:

sudo chmod -R 755 /var/run/mysqld

设置权限为755允许root用户对目录进行读、写和执行,而其他用户只能读和执行。

注意:你可以在 Linux 中使用chmod命令更改文件和文件夹的权限。

2. 重启 MySQL 服务使更改生效:

sudo systemctl restart mysql

方法 4:检查多个 MySQL 实例

Cant connect to local MySQL解决办法:如果同时运行多个 MySQL 实例,也会发生此错误。

1. 要列出 MySQL 的所有实例,请使用:

ps -A|grep mysqld
多个方法修复错误Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

注意:查看我们的指南以了解如何grep在 Linux 中使用该命令。

2. 如果有多个 MySQL 实例正在运行,请使用以下命令终止它们:

sudo pkill mysqld

3、重启MySQL服务,启动单个MySQL实例:

sudo systemctl restart mysql

结论

阅读本教程后,你应该已经确定了Can't connect to local MySQL server through socket”错误的原因并应用了适当的解决方案。

有关使用 MySQL 的更多帮助,请参阅我们的MySQL 命令备忘单。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: