无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器。

Posted

技术标签:

【中文标题】无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器。【英文标题】:Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'. 【发布时间】:2016-02-17 04:27:42 【问题描述】:

尝试了所有帖子的解决方案。 ERROR 2002 (HY000): Can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock' (2)

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysql.sock' (2)

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

在跟进过程中遇到了另一个问题.. sudo:有效uid不为0,sudo是否安装了setuid root?

所以对于这个尝试过的帖子

http://ubuntuforums.org/showthread.php?t=2222715

sudo: effective uid is not 0, is sudo installed setuid root?

还有这个 chown:更改 `/usr/bin/sudo' 的所有权:不允许操作

任何人都可以为此提供完美的解决方案.. 除了重新安装操作系统。我没有用于恢复的救援磁盘。

【问题讨论】:

你是如何使用命令行连接到 mysql 的?如果是,请提供您正在使用的命令。还告诉我们那是什么操作系统。 是的,我在 linux 上使用命令行连接。我正在使用这个命令 mysql -uroot -p 好的,mysql服务状态/etc/init.d/mysql status是什么? 你试过重启mysql服务了吗? netstat -pan | grep 3306 命令的输出是什么?顺便说一句,那是什么操作系统? 它的 Ubuntu O/p(无法读取“-p”的信息:geteuid()=1000,但您应该是 root。) 【参考方案1】:

尝试停止您的 mysql 服务器并重新启动它。

/etc/init.d/mysql  stop
/etc/init.d/mysql  start

仍然是同样的问题,然后从 mysql 目录重命名 mysql.sock 文件,例如/var/lib/mysql/mysql.sock文件夹并重启mysql服务器。

【讨论】:

/etc/init.d/mysql stop ---> 说与其通过 /etc/init.d 调用初始化脚本,不如使用 service(8) 实用程序,例如service mysql stop 由于您尝试调用的脚本已转换为 Upstart 作业,您还可以使用 stop(8) 实用程序,例如当我使用 stop mysql 或 service mysql stop 时停止 mysql 显示未知实例 你是否可以使用以下任何命令来停止或启动 mysql.. /etc/init.d/mysql start /etc/init.d/mysqld start service mysql start service mysqld start ?? status mysql 显示 mysql 停止/等待。 service mysql start 显示启动:拒绝发送消息,1 个匹配规则; type="method_call", sender=":1.30" (uid=1000 pid=2209 comm="start mysql") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init") /etc/init.d/mysql start 显示 与其通过 /etc/init.d 调用初始化脚本,不如使用 service(8) 实用程序,例如service mysql start 由于您尝试调用的脚本已转换为 Upstart 作业,您还可以使用 start(8) 实用程序,例如start mysql start: 拒绝发送消息,1 个匹配规则; type="method_call", sender=":1.34" (uid=1000 pid=2223 comm="start mysql") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init") @VarunChawla...您需要在命令下强制停止mysql并获取mysql的hte pid并杀死它们...ps -ef |grep mysql.sock然后使用kill -9 pid杀死pid

以上是关于无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器。的主要内容,如果未能解决你的问题,请参考以下文章

利用shell脚本去备份所指定的数据库

为啥我无法通过 Web 套接字连接获得 HubCallerContext 用户?

无法通过 TCP 套接字发送大列表 - 黑莓

无法通过套接字连接到本地 MySQL 服务器

无法通过 Java 中的套接字发送大文件

OperationalError:无法通过套接字连接到本地 MySQL 服务器