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

shr*_*ans 181 mysql macos

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

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

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

sha*_*w0w 97

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

要验证它是否正在运行,请打开Activity Monitor并在"All Processes"下,搜索并验证您是否看到"mysqld"进程.

您可以通过安装"MySQL.prefPane"来启动它.

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

  • 我刚刚运行了`mysqld`而这就是全部,这是由于_poor关闭而导致的问题,因为系统的_hard reset/shutdown-down_. (81认同)
  • 建议的方法都没有奏效。对我来说,它正在运行,但是,存在权限问题。运行 `sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7` 解决了这个问题 (4认同)
  • ✅ 对我来说,硬重置后是 `sudo chown -R your_user /usr/local/var/mysql/ && mysql.server start` (4认同)

Md *_*han 94

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

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

  • 运行`sudo chown -R _mysql:mysql/usr/local/var/mysql && sudo brew services restart mysql @ 5.7`解决了这个问题 (6认同)
  • `brew 服务启动 mysql` 成功。但是当我在它之后运行“mysql -uroot”时,仍然出现同样的错误。 (3认同)

Nir*_*han 67

在家庭酿造安装后,这很开心.这是由于权限问题而发生的.以下命令解决了该问题.

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

sudo mysql.server start
Run Code Online (Sandbox Code Playgroud)

  • 你太棒了@nirojan,我的头撞到墙上了:thumsup: (4认同)
  • 我收到此消息:` 错误!服务器退出而不更新 PID 文件(/var/lib/mysql/Saranshs-MacBook-Pro-2.local.pid)。`操作系统:Catalyna mysql:5.7.29 (3认同)
  • 尽管我严格遵循了brew的说明,但在执行brew卸载mysql@5.7然后安装mysql@5.6后,此页面上的任何内容都对我不起作用。当我重新启动 Mac (Big Sur) 后,该错误开始出现。更改权限并重新启动 brew 服务没有帮助。将它们更改回我的用户名和组也不起作用。我也收到更新 PID 文件错误。我很困惑。当 Big Sur 不那样工作时,它似乎试图从 /tmp 中退出。我不知道在哪里更新。 (3认同)
  • 我也是:启动 MySQL 。错误!服务器退出而不更新 PID 文件 (/usr/local/var/mysql/localhost.pid)。 (2认同)
  • 运行命令“服务器退出而不更新 PID 文件”后出现此错误 (2认同)

Gau*_*wal 45

跑: 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
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.


Ith*_*har 33

正如其他人所指出的那样,这是因为安装了MySQL但服务没有运行.有很多方法可以启动MySQL服务,对我有用的是下面的内容.

要启动服务:

  1. 转到"系统首选项"
  2. 在底部窗格中应该有MySql图标.
  3. 双击它以启动"MySQL服务器状态",然后按"启动MySQL服务器"按钮

我的环境:

Mac Yosemite 10.10.3

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


mon*_*eki 23

解决方案围绕着:

我想补充了很多伟大的和有用的答案已提供在这里和许多不同的职位,尝试指定主机,如果上面的命令并没有解决这个问题对你来说,即

mysql -u root -p h127.0.0.1
Run Code Online (Sandbox Code Playgroud)


ynd*_*lok 14

我用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
Run Code Online (Sandbox Code Playgroud)

相反,我手动删除并重新安装了MySQL:

$ sudo rm -rf /usr/local/Cellar/mysql
$ brew cleanup
$ sudo rm -rf /usr/local/var/mysql
$ brew install mysql
Run Code Online (Sandbox Code Playgroud)

这很有效!


gge*_*zke 13

下面我将包括来自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
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我现在加载了mysql launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist,然后能够启动$ mysql并继续我的方式.

我希望这有助于最近的问题排查工具!


Pra*_*wal 10

看起来你的mysql服务器没有启动.我通常运行s​​top命令,然后再次启动它:

mysqld stop
mysql.server start
Run Code Online (Sandbox Code Playgroud)

同样的错误,这对我有用.


小智 9

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

brew services start mysql
Run Code Online (Sandbox Code Playgroud)


Foo*_*Bar 8

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

$ mysqld
Run Code Online (Sandbox Code Playgroud)

然后 MySQL 应该会为您运行。


Isr*_*imu 7

指定的数据目录 /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
Run Code Online (Sandbox Code Playgroud)
在此处输入图片说明 完成所有安全安装过程,然后运行

$mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

恭喜你刚刚设置了mysql!

  • 这应该是第一解决方案。为此多投票。 (4认同)

Ken*_*son 6

对我来说,它就像运行一样简单:

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

代替 mysqld


小智 6

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

sudo rm -f /tmp/mysql.sock.lock
Run Code Online (Sandbox Code Playgroud)


bar*_*aga 5

/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

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

  • 这很可能会解决此问题,但是警告未来的读者,这将清除您的所有数据库。基本上,这是对MySQL的重新安装。我知道问题的背景是全新安装,但是某些正在扫描的人可能只是尝试执行此操作,而不知道它可能对现有/生产安装造成的损害。 (2认同)
  • 这实际上不是一个解决方案。这是“您是否尝试过再次打开和关闭它?” (2认同)