mysql.sock 未创建 OSX

Posted

技术标签:

【中文标题】mysql.sock 未创建 OSX【英文标题】:mysql.sock is not created OSX 【发布时间】:2011-06-18 08:07:40 【问题描述】:

我在 OSX 上运行 mysql,现在当我重新启动计算机时,它不会创建 mysql.sock,这意味着我的所有连接都会给我一个错误 2002。

有人知道如何预防吗?

【问题讨论】:

MySQL 真的启动了吗?如果它正在启动,它将自动创建套接字。 你的mysql错误日志是怎么说的? 你解决过这个问题吗? 是的,发布了一个对其他人(包括我自己)有用的解决方案,如果您能标记正确的解决方案,将非常感激。 【参考方案1】:

我在 Snow Leopard 上遇到了同样的问题,在 OS X 上,由于某种原因,套接字在错误的位置生成。

要在正确的位置生成套接字: 在 /etc 中使用以下行创建一个新文件“my.cnf”:

[mysqld]
socket=/var/mysql/mysql.sock

[client]
socket=/var/mysql/mysql.sock

然后重启mysqld:sudo /usr/local/mysql/bin/mysqld_safe

这将强制 MySQL 套接字文件在正确的位置生成,并且一切都应该正常工作。祝你好运!

【讨论】:

这个问题被重复了几十次,但你的问题是第一个真正帮助我的答案。它值得更多的支持。 /etc 文件在哪里?如果这是个愚蠢的问题,我很抱歉,但我知道那是什么! etc 是一个目录,而不是一个文件。它位于根 ("/") 目录下(因此是 "/etc")。 我遇到的另一个问题是运行 mysql 的用户没有编辑 /var/mysql/mysql.sock 的权限(我想是因为我使用 sudo 创建了它),所以我有在一切正常之前对其进行 chmod。实际上,在我修改它之前,MySQL 甚至都不会启动。 mysqld_safe 命令立即生效......你让我很开心。谢谢【参考方案2】:

我使用 Mac OS 10.12 Sierra,我遇到了同样的 mysql 问题。我可以在我的文件系统中找到 mysql.sock。

解题方法:

1 删除 my.cnf

sudo rm -rf /etc/my.cnf

重启你的mysql服务器

brew services 重启 mysql

sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

你可以检查一下

sudo 丢失 -i tcp:3306

mysql 运行正常。

【讨论】:

【参考方案3】:

我曾经在 Linux 机器上遇到过这个问题,我发现目录 (/var/run/mysqld) 不能被 mysql 运行的用户写入。如果我是你,我会检查的。

【讨论】:

【参考方案4】:

我建议执行

sudo find / -name "mysql.sock"

确保文件不在任何地方。

在我的案例中,我以这种方式使用了带有变体套接字的命令 mysql

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

【讨论】:

【参考方案5】:

我在运行 Sierra 的机器上重新启动 MySQL 时遇到了麻烦。每次我在重新启动机器后尝试连接时,我都会失去连接到我的 MySQL 实例的能力。根据这篇文章,我确定我的环境中确实没有 my.cnf 文件。我按照 DashRantic 的说明强制构建套接字文件。它似乎已经解决了这个问题。

【讨论】:

以上是关于mysql.sock 未创建 OSX的主要内容,如果未能解决你的问题,请参考以下文章

更改 mysql.sock

更改 mysql.sock

mysql读不到数据库里的数据

出现”/var/lib/mysql/mysql.sock“不存在的解决方法

mysql 忘记密码

解决var/run/mysqld没有pid和sock文件