261

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

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

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

4

38 回答 38

159

您需要先启动 MySQL,然后才能mysql在终端上使用该命令。为此,请运行brew services start mysql. 默认情况下,brew 安装 MySQL 数据库时没有 root 密码。为了确保它运行:mysql_secure_installation.

要连接运行:mysql -uroot. root是这里的用户名。

于 2016-08-06T14:13:14.077 回答
147

这发生在自制软件安装之后,并且由于权限问题而发生。以下命令修复了该问题。

sudo chown -R _mysql:mysql /usr/local/var/mysql

sudo mysql.server start
于 2016-11-22T08:25:45.877 回答
142

这可能是因为 MySQL 已安装但尚未运行。

要验证它是否正在运行,请打开活动监视器并在“所有进程”下,搜索并验证您是否看到进程“mysqld”。

您可以通过安装“MySQL.prefPane”来启动它。

这是帮助我的完整教程:http: //obscuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html

于 2014-01-29T05:12:00.077 回答
48

跑:brew info mysql

并按照说明进行操作。从公式中的描述:

Set up databases to run AS YOUR USER ACCOUNT with:
    unset TMPDIR
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

To set up base tables in another folder, or use a different user to run
mysqld, view the help for mysql_install_db:
    mysql_install_db --help

and view the MySQL documentation:
  * http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
  * http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html

希望这可以帮助。

于 2013-03-16T14:02:27.840 回答
41

正如其他人指出的那样,这是因为 MySQL 已安装但服务未运行。有很多方法可以启动 MySQL 服务,对我有用的方法如下。

启动服务:

  1. 转到“系统偏好设置”
  2. 在底部窗格中应该有 MySql 图标。
  3. 双击它以启动“MySQL 服务器状态”并按下按钮“启动 MySQL 服务器”

我的环境:

Mac 优胜美地 10.10.3

安装包:/Volumes/mysql-advanced-5.6.24-osx10.8-x86_64

于 2015-05-06T12:04:06.513 回答
27

解决方案围绕:

  • 更改 MySQL 的权限

    sudo chown -R _mysql:mysql /usr/local/var/mysql
    
  • 启动 MySQL 进程

    sudo mysql.server start
    

只是为了添加这里和许多不同帖子中提供的许多很棒和有用的答案,如果上述命令没有为您解决这个问题,请尝试指定主机,即

mysql -u root -p h127.0.0.1
于 2017-03-27T15:51:21.157 回答
19

警告 - 此方法将删除/usr/local/var/mysql文件夹中的所有数据库

我用 Homebrew 安装了 MySQL,唯一为我解决这个问题的是重新安装 MySQL。

在我公司的笔记本电脑上,我无权通过 Homebrew 从我的计算机上卸载 MySQL:

$ brew uninstall mysql --ignore-dependencies
Uninstalling /usr/local/Cellar/mysql/8.0.12... (255 files, 233.0MB)
Error: Permission denied @ dir_s_rmdir - /usr/local/Cellar/mysql/8.0.12

因此,我手动删除并重新安装了 MySQL:

$ sudo rm -rf /usr/local/Cellar/mysql
$ brew cleanup
$ sudo rm -rf /usr/local/var/mysql
$ brew install mysql

那行得通!

于 2018-08-08T01:56:51.177 回答
16

Looks like your mysql server is not started. I usually run the stop command and then start it again:

mysqld stop
mysql.server start

Same error, and this works for me.

于 2017-04-14T08:27:51.757 回答
14

下面我将包含来自brew install mysql此问题的最新搜索的最新说明:

$ brew install mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.6.26.yosemite.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.6.26.yosemite.bottle.1.tar.gz

To connect:
    mysql -uroot

To have launchd start mysql at login:
  ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
  mysql.server start

就我而言,我现在通过加载mysql launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist,然后能够启动$ mysql并继续前进。

我希望这有助于最近的疑难解答!

于 2015-10-01T21:41:44.660 回答
12

这个问题与/usr/local/var/mysql文件夹访问有关,我删除了这个文件夹并重新安装了 mysql。

  1. 用 brew 卸载 mysql :

    brew uninstall mysql

  2. sudo rm -r /usr/local/var/mysql

  3. brew install mysql@8.0
  4. mysql -u root

这个解决方案对我来说很好! 但是您丢失了所有数据库!警告!

于 2019-05-30T06:48:06.923 回答
10

当我重新启动 mysql 服务时,这解决了我的问题。赶紧跑:

brew services start mysql
于 2017-05-02T03:55:30.977 回答
9

指定的数据目录 /usr/local/var/mysql/ 不可用。您可以删除服务器添加到其中的所有文件。

MacOS:
$brew services stop mysql
$brew services list
$brew uninstall  mysql

$brew install mysql
$brew postinstall mysql

If Any error found then run those cmd
$sudo rm -rf /usr/local/var/mysql
$sudo rm /usr/local/etc/my.cnf
$brew postinstall mysql


$brew services start mysql
$mysql_secure_installation
在此处输入图像描述 完成所有安全安装过程然后运行

$mysql -u root -p

恭喜你刚刚设置了 mysql!

于 2020-12-22T17:15:54.527 回答
9

哦,我花了一段时间才弄清楚。我在评论中看到了。使用 brew 安装 mysql 并启动服务(可能使用sudo brew services start mysql)然后运行:

$ mysqld

此后,MySQL 应该会为您运行。

于 2018-10-10T18:40:58.483 回答
6

就我而言,这只是删除锁定文件的问题。

sudo rm -f /tmp/mysql.sock.lock
于 2018-06-07T17:24:41.017 回答
6

对我来说,这很简单:

/usr/local/opt/mysql/bin/mysqld_safe

代替mysqld

于 2017-03-15T20:34:39.547 回答
3

我找到了解决我的问题的方法。这确实是因为我的 MySQL 服务器没有运行。

这是由于 MySQL 没有在我的机器上正确设置,因此无法运行。

为了解决这个问题,我使用了一个在 Mac OSX Mountain Lion 上安装 MySQL 的脚本,它必须安装丢失的文件。

这是链接:http ://code.macminivault.com/

重要提示: 此脚本将 root 密码设置为随机生成的字符串,并将其保存在桌面上,因此请注意不要删除此文件并记下密码。它还会在您的系统首选项中安装 MySQL 管理器。我也不确定是否删除任何现有的数据库,所以要小心。

于 2013-03-18T09:59:02.107 回答
3

在为此工作了几个小时后,对我有用的是转到 /etc/mysql/ 并编辑 my.cnf 文件。添加以下内容

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
于 2017-05-09T23:03:12.133 回答
2

我经历了这个问题,我设法使用以下解决方案运行 mysql 服务器

.dmg通过(https://dev.mysql.com/downloads/mysql/5.7.html )安装mysql ,您将在系统偏好设置中获得mysql服务面板然后从面板启动mysql并尝试

mysql -u root -p

附上图片供参考

系统偏好

mysql面板

于 2019-06-24T09:21:01.623 回答
1

在尝试了许多解决方案之后,似乎最终成功的方法是通过 IP 连接。不再随机删除文件套接字。

只需更新您的 MySQL 客户端配置(例如/usr/local/etc/my.cnf):

[client]
port = 3306
host=127.0.0.1
protocol=tcp
于 2019-12-06T06:10:44.130 回答
1

使用上述所有解决方案后,对我来说没有任何效果,但这有效。

我您已经使用 HomeBrew 安装了 MySQL,然后在您的 mac 中检查System Preferences > MySQL,如果 MySQL 服务器正在运行,则在此处输入图像描述通过单击停止 MySQL 服务器停止它并从终端编写命令来启动 MySQL mysqlserver.start

如果它不起作用,您也可以尝试:-

如果您还安装了 MySQL Workbench,则只需卸载MySQL Workbench 和 MySQL,然后先安装MySQL,然后再安装 MySQL Workbench。

于 2021-05-07T07:53:27.520 回答
1

只有这对我有用 brew services start --all (在尝试了所有答案之后)

于 2019-08-21T21:44:05.807 回答
1

我建议你跑

  mysql.server start

在去之前

  mysql -u root -p

以便在尝试登录之前确保 mysql 服务器正在运行

当您启动/重新启动没有运行 mysql 服务器的机器时,这种情况会发生很多次。

于 2019-10-13T07:15:57.613 回答
1

我一直回到这个帖子,我已经多次遇到这个错误。这可能与在全新安装后导入我的所有数据库有关。

我正在使用自制软件。唯一用来为我修复它的东西:

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

今天早上,在我的机器决定一夜之间关闭后,问题又回来了。现在唯一修复它的是升级mysql。

brew upgrade mysql
于 2019-10-15T08:02:35.463 回答
1

可能您在自制 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  
于 2021-11-15T19:52:11.097 回答
1

我已经尝试了所有可能的方法来解决这个问题,比如 ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock,卸载并重新安装 mysql,确保 mysql 在 xampp 上运行,但没有一个仍然有效.

最后,我打开 my.cnf(配置文件)并复制套接字路径(确保复制完整路径,否则它将不起作用)。然后我在终端中执行这个命令

mysql --socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

瞧,mysql 启动了。

只有当您的 MySQL 显示在 Xampp/Ampps 上运行时,此解决方案才有效,但在终端中,当您已经尝试过以下操作时,它仍然没有连接到正确的套接字:

./mysql -u root

或者

brew services start mysql

我希望这有帮助!

于 2018-10-17T11:48:02.970 回答
0

尝试这个

rm -rf /usr/local/var/mysql && brew postinstall mysql@5.7 && brew services restart mysql@5.7
于 2019-08-10T08:14:45.110 回答
0

只需在终端中点击“brew services start mysql”

于 2020-10-16T21:37:45.507 回答
0

就我而言,只需将主机指定为 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>
于 2021-08-13T10:03:07.013 回答
0

sudo chown _mysql /usr/local/var/mysql/*在尝试了所有这些 SO 答案的多种选择之后,跑步终于帮助了我。权限问题可能是由于机器关闭不当造成的。

于 2020-09-27T20:42:32.910 回答
0

在我的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

之后,我尝试使用启动 MySQL brew services start 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

于 2021-12-29T17:44:45.140 回答
0

升级到 Catalina OS 后遇到了类似的问题。运行 mysqld 命令后,我发现日志文件存在一些问题。对其他人来说可能会有所不同。

$ mysqld

问题是

2019-10-16T04:58:59.174474Z 0 [ERROR] Could not open file '/var/log/mysql/error.log' for error logging: No such file or directory
2019-10-16T04:58:59.174508Z 0 [ERROR] Aborting

通过创建它并应用适当的权限来解决它。

sudo mkdir -p /var/log/mysql
sudo touch /var/log/mysql/error.log
sudo chown -R _mysql:mysql /var/log/mysql/

重启 MySQL

brew services restart mysql@5.7

问题已解决。

mysql -uroot -proot
于 2019-10-16T05:39:33.217 回答
0

这里有很多其他有用的回复,但没有什么能解决这个问题。最终,我在这个网站或其他网站上找到的任何东西都不会让 Homebrew 的任何版本的 MySQL 为我工作。

https://dev.mysql.com/downloads/file/?id=479114下载 DMG (找到您需要的适当版本)并让向导为我安装它非常轻松。唯一的其他手动步骤是添加/usr/local/mysql/bin到我的 PATH。

如果 brew 给你带来麻烦,我会推荐这个选项。

更新 - 如果仍然无法解决问题,请在通过 DMG 安装之前尝试完全清除 mysql。请按照以下说明操作:https ://gist.github.com/vitorbritto/0555879fe4414d18569d

于 2018-08-13T19:35:54.940 回答
0

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

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

cd /usr/local/var

sudo rm -rf mysql

brew install mysql

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

mysql_secure_installation

然后点燃它。

mysql -uroot

于 2021-12-06T02:12:30.733 回答
0

在我的情况下,在安装 MAMP 之后,从终端访问 mysql 给出了相同的套接字错误。最后,它想要的只是重新启动并且它正在工作。

于 2016-12-15T11:40:17.880 回答
0

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

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

$ 猫 ~/.my.cnf

[mysql]

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

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

于 2020-10-17T06:23:26.117 回答
0

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

于 2021-02-13T15:08:36.103 回答
-1

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

按照以下步骤操作,您将与本地 mysql 设置一样好:

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

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

于 2021-08-31T14:48:27.953 回答
-4
  1. 卸载 MySQL。
  2. 删除/usr/local/var/mysql/.
  3. 安装 MySQL。
于 2018-08-21T19:57:25.203 回答