错误 2002 (HY000): 无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器

Posted

技术标签:

【中文标题】错误 2002 (HY000): 无法通过套接字 \'/tmp/mysql.sock\' 连接到本地 MySQL 服务器【英文标题】:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'错误 2002 (HY000): 无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器 【发布时间】:2013-03-05 05:04:32 【问题描述】:

我在 Mac OS X Mountain Lion 上使用 homebrew install mysql 安装了 MySQL,但是当我尝试使用 mysql -u root 时出现以下错误:

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

这个错误是什么意思?我该如何解决?

【问题讨论】:

没有将其作为答案发布,但您还必须install mysql-server 包,而不仅仅是mysql @HankyPanky 也许你写的时候是这样。但在 2016 年,Brew 没有 mysql-serverinstall 请务必注意您使用 Homebrew 安装,因此请忽略非 Homebrew 提示并使用 brew services start mysql 或(如果您不想要后台服务)mysql.server start. 我让它工作但使用旧的正常 mysql 5.7.19。新的 mysql@5.7 版本 5.7.24 无法工作,因为某些配置引用保持链接到旧的 mysql 而不是新的 brew Cellar mysql@5.7 Keg。所以谢谢我稍后再试 运行brew upgrade后也可能发生此错误,这将安装比以前安装的更新版本的mysql。 【参考方案1】:

如果您在 OSX 上并且有 XAMPP,请按照以下步骤操作:

感谢 Jackstine 的回答,我能够做到以下几点:

$ cat ~/.my.cnf

[mysql]

# CLIENT #
port                           = 3306
socket                         = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

我希望这能在我以后忘记时再次帮助我!

【讨论】:

【参考方案2】:

我设法通过将 localhost 更改为 127.0.0.1 解决了这个问题

【讨论】:

你能添加一些细节,比如你改变了什么配置文件?之前的值是多少。 “将 localhost 更改为 127.0.0.1”这句话听起来就像您正在编辑 /etc/hosts 文件,它应该已经是 127.0.0.1 。 在你的命令中添加ip地址而不是localhost mysql -h 127.0.0.1 -u root -p【参考方案3】:

就我而言,只需将主机指定为 127.0.0.1,而不是 localhost:

$ bin/mysql -uroot -p -h127.0.0.1
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

【讨论】:

【参考方案4】:

您可能在自制 mysql 安装过程中遇到了一些问题,并且 mysql 服务可能没有运行。如果是这种情况,那么可能值得尝试以下步骤以正确重新安装 mysql,然后尝试连接。

sudo chown -R $(whoami) /usr/local/var

sudo chown -R $(whoami) /Library/Caches/Homebrew

brew uninstall mysql

brew install mysql

mysql.server start   

mysql -uroot  

【讨论】:

【参考方案5】:

Homebrew 绝对不会使用标准重新安装来修复权限,并且追查损坏的文件夹/文件将花费比其价值更长的时间。

在这种情况下 - 手动删除 mysql 安装并通过自制软件重新安装。大约需要 2 分钟。

cd /usr/local/var

sudo rm -rf mysql

brew install mysql

Homebrew 默认安装 mysql insecure,所以如果你想要密码:

mysql_secure_installation

然后启动它。

mysql -uroot

【讨论】:

【参考方案6】:

在我的 ma​​c m1 macOS Monterey 上安装 MySQL 后,使用 brew install mysql 我得到了以下信息:

[System] [MY-013169] [Server] /opt/homebrew/Cellar/mysql/8.0.27_1/bin/mysqld (mysqld 8.0.27) initializing of server in progress as process 3624

[ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.

[ERROR] [MY-013236] [Server] The designated data directory /opt/homebrew/var/mysql/ is unusable. You can remove all files that the server added to it.

[ERROR] [MY-010119] [Server] Aborting

[System] [MY-010910] [Server] /opt/homebrew/Cellar/mysql/8.0.27_1/bin/mysqld: Shutdown complete (mysqld 8.0.27)  Homebrew.

还有这个警告:

Warning: The post-install step did not complete successfully You can
try again using:   brew postinstall mysql

之后我尝试使用brew services start mysql 启动 MySQL,但我得到了这个错误

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

我设法修复它:

> rm -rf ~/opt/homebrew/var/mysql/
> brew postinstall mysql

现在您可以联系mysql -urootmysql -uroot -p

【讨论】:

【参考方案7】:

本地机器上所有这些问题的最佳替代方案 -> DOCKER

按照这些步骤,您将与本地 mysql 设置一样好:

    安装 Docker 确保 docker 正在运行(只需打开 Docker 桌面应用程序) 在终端上运行此命令 -> docker pull mysql 运行以下命令,您的 mysql 将在 3306 端口上启动并运行,密码为 root,用户名也为 root

-> docker run --name docker-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql

【讨论】:

这不是在回答问题,您只是在建议用户可能会或可能不会采取的不同路径。 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。【参考方案8】:
    卸载 MySQL。 删除/usr/local/var/mysql/。 安装 MySQL。

【讨论】:

这不会吹走您可能拥有的所有数据库吗?对我来说似乎是一个相当严厉的解决方案,特别是考虑到它可能只是 MySQL 没有运行的问题。 是的,但根据问题,这是全新安装,因此假设不会有任何数据库。

以上是关于错误 2002 (HY000): 无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器的主要内容,如果未能解决你的问题,请参考以下文章

mysqli::mysqli(): (HY000/2002): 无法通过套接字 'MySQL' 连接到本地 MySQL 服务器 (2)

ERROR 2002 (HY000): 无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

ERROR 2002 (HY000): 无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

ERROR 2002 (HY000): 无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

ERROR 2002 (HY000): 无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

Mac 终端/ MySQL 配置问题 | ERROR 2002 (HY000): 无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器 (2)