错误:“无法通过套接字'varrunmysqldmysqld.sock'(2)连接到本地MySQL服务器”—缺少varrunmysqldmysqld.sock

错误:“无法通过套接字'varrunmysqldmysqld.sock'(2)连接到本地MySQL服务器”—缺少varrunmysqldmysqld.sock,第1张

错误:“无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器”—缺少/var/run/mysqld/mysqld.sock

要在系统上查找所有套接字文件,请运行:

sudo find / -type s

Mysql服务器系统在以下位置打开了套接字

/var/lib/mysql/mysql.sock

找到套接字所在的位置后,将其添加或编辑到/etc/my.cnf文件中,并带有套接字文件的路径:

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

有时,启动命令行可执行文件的系统启动脚本会指定一个标志

--socket=path
。此标志可能会覆盖my.cnf位置,这将导致在my.cnf文件指示应在的位置找不到套接字。然后,当您尝试运行mysql命令行客户端时,它将读取my.cnf来查找套接字,但是由于它与服务器创建位置不同,因此找不到该套接字。因此,除非您关心套接字所在的位置,否则只需更改my.cnf使其匹配即可。

然后,停止mysqld进程。您的 *** 作方式因系统而异。

如果您是Linux系统的超级用户,如果您不知道Mysql设置使用的特定方法,请尝试以下方法之一:

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • 某些系统未设置为具有优雅的方式来停止mysql(或者由于某些原因mysql无法响应),因此您可以使用以下任一方法强制终止mysql:
    • 一步:
      pkill -9 mysqld
    • 两步(最不推荐):
    • 使用
      pgrep mysql
      或找到mysql的进程ID
      ps aux | grep mysql | grep -v grep
    • 假设进程ID
      4969
      kill -9 4969

完成此 *** 作后,您可能想要在其中查找pid文件

/var/run/mysqld/
并将其删除

确保套接字上的许可权允许运行mysqld的任何用户都可以对其进行读取/写入。一个简单的测试是将其打开以进行完全读/写,然后查看它是否仍然有效:

chmod 777 /var/run/mysqld/mysqld.sock

如果这样可以解决问题,则可以根据安全设置根据需要调整套接字的权限和所有权。

另外,运行mysqld进程的用户必须可以访问套接字所在的目录。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5042456.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-15
下一篇2022-11-15

发表评论

登录后才能评论

评论列表(0条)

    保存