ERROR 2002 (HY000): Can‘t connect to local MySQL server through socke ...

打印 上一主题 下一主题

主题 945|帖子 945|积分 2837

问题现象:通过mysql -uroot -p命令连接数据库,输入准确的密码,报错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决办法:

  • 查抄MySQL服务是否运行

    • 利用命令 sudo systemctl status mysql 查抄MySQL服务是否正在运行。如果没有运行,利用 sudo systemctl start mysql 来启动服务。

  • 确认Socket文件存在

    • 查抄 /var/lib/mysql/mysql.sock 文件是否存在。如果文件不存在,可能必要重新创建socket文件。可以利用 find / -name mysql.sock 命令来查找体系中的 mysql.sock 文件。

  • 修改MySQL设置文件

    • 如果找到了 mysql.sock 文件,但位置与MySQL设置文件中的路径不同等,必要修改 /etc/my.cnf 或 /etc/mysql/my.cnf 文件中的 socket 参数,将其设置为准确的路径。

  • 创建软链接

    • 如果 mysql.sock 文件存在,但位于非尺度位置,可以创建一个软链接到尺度位置。比方,如果 mysql.sock 实际位于 /var/lib/mysql/mysql.sock,可以执行 ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 来创建软链接。

  • 查抄权限

    • 确保当前用户有权限访问 mysql.sock 文件。如果没有,可以利用 chmod 或 chown 命令来修改文件权限或全部者。

  • 利用TCP/IP连接

    • 如果socket连接问题无法解决,可以考虑修改MySQL设置文件,利用TCP/IP连接取代socket连接。在 my.cnf 文件中设置 socket=(无值),然后重启MySQL服务。

  • 重启MySQL服务

    • 在修改设置文件或创建软链接后,必要重启MySQL服务以使更改生效。利用 sudo systemctl restart mysql 命令来重启服务。

  • 直接指定socket路径

    • 实行直接在命令行中指定socket路径连接MySQL,比方 mysql --socket=/var/lib/mysql/mysql.sock -u root -p。

问题原因:
MySQL客户端无法通过指定的socket文件连接到本地MySQL服务器


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表