7

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

有谁知道如何防止这种情况?

4

5 回答 5

20

我在 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 套接字文件在正确的位置生成,并且一切都应该正常工作。祝你好运!

于 2011-01-31T04:04:29.917 回答
4

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

解题方法:

1 删除 my.cnf

sudo rm -rf /etc/my.cnf

重启你的mysql服务器

brew服务重启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 运行正常。

在此处输入图像描述

于 2017-01-12T05:19:24.113 回答
2

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

于 2011-01-31T03:37:17.030 回答
1

我建议执行

sudo find / -name "mysql.sock"

确保文件不在任何地方。

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

mysql --socket=/var/lib/mysql/mysql.sock
于 2013-09-19T19:50:24.387 回答
0

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

于 2016-11-14T16:38:51.023 回答