错误 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-server
到 install
。
请务必注意您使用 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】:在我的 mac 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 -uroot
或mysql -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)