介绍
使用 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
2. 如果服务没有运行,请使用以下命令重新启动它:
sudo systemctl start mysql
3. 为防止此问题发生,请将 MySQL 服务设置为开机时自动启动:
sudo systemctl enable mysql
方法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
注意:在我们的 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套接字文件的路径。
另一种方法是创建一个从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
注意:查看我们的指南以了解如何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 命令备忘单。