错误 2002 MYSQL 套接字 /tmp/mysql.sock

Raf*_*tes 7 mysql mac socket

A 已经阅读了有关此错误的所有内容,但我无法解决问题。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)
Run Code Online (Sandbox Code Playgroud)

我正在尝试在 Mac OsX 上安装 mysql,但是当我尝试连接到 db ( mysql -u root -p) 时,我看到了这个问题,ERROR 2002.

我已经安装了 Mysql /usr/local/mysql

Rol*_*DBA 9

你说你运行时得到错误 mysql -u root -p

这将查找要连接的套接字文件。当 mysqld 启动时,有可能没有创建 socket 文件而 mysqld 仍然启动(请参阅我在 /etc/init.d/mysql start 上的帖子Percona-server 超时

尝试使用以下方法之一查看是否可以在没有套接字文件的情况下进行连接

  • mysql -u root -p -h127.0.0.1
  • mysql -u root -p -h127.0.0.1 --protocol=tcp

如果您可以连接其中之一,则像这样关闭 mysql

mysqladmin -u root -p -h127.0.0.1 --protocol=tcp shutdown
Run Code Online (Sandbox Code Playgroud)

mysqld 应该正确关闭。之后,照常启动mysql

试一试 !!!


小智 4

检查 MySQL 守护进程是否正在运行

您可以检查mysqld**终端应用程序* 中的守护进程是否正在运行:

ps -feax | grep mysqld 
Run Code Online (Sandbox Code Playgroud)

并验证您是否得到与此类似的内容:

    0  8308     1   0   0:00.08 ??         0:00.11 /bin/sh /usr/local/mysql/bin/mysqld_safe
Run Code Online (Sandbox Code Playgroud)

mysqld或在“活动监视器”应用程序上查找进程

如果它没有运行, 您必须启动守护进程。

启动 MySQL 守护进程

在 Mac OSX 上,您可以通过终端应用程序启动守护进程,如下所示:

sudo /usr/local/mysql/bin/mysqld_safe &
Run Code Online (Sandbox Code Playgroud)

再次检查 MySQL 守护程序现在是否如前所述运行。