我已经阅读了有关此错误的所有内容,但我无法解决问题。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)
我正在尝试在我的 Mac OsX 上安装 mysql,但是当我尝试连接到 db( mysql -u root -p
) 时,我发现了这个问题ERROR 2002
。
我已经安装了 Mysql/usr/local/mysql
答案1
检查 MySQL 守护程序是否正在运行
您可以mysqld
从**终端应用程序*检查守护进程是否正在运行:
ps -feax | grep mysqld
并验证您是否获得与此类似的结果:
0 8308 1 0 0:00.08 ?? 0:00.11 /bin/sh /usr/local/mysql/bin/mysqld_safe
mysqld
或寻找活动监视器应用程序
如果它是没有运行 您必须启动守护进程。
启动 MySQL 守护进程
在 Mac OSX 上,你可以从终端应用程序启动守护进程,如下所示:
sudo /usr/local/mysql/bin/mysqld_safe &
再次检查 MySQL 守护进程是否按之前描述的方式运行。
答案2
你说运行时出现错误mysql -u root -p
这将查找要连接的套接字文件。当 mysqld 启动时,有可能套接字文件未创建,但 mysqld 仍会启动(请参阅我的帖子Percona-server 在 /etc/init.d/mysql 启动时超时)
尝试使用以下方法之一,看看是否可以在没有套接字文件的情况下进行连接
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
mysqld 应该可以正常关闭。之后,照常启动 mysql
试一试 !!!
答案3
我知道这是一篇老帖子,但我花了大约一个小时的时间在 serverfault、StackOverflow 和 DataBase 管理员之间来回奔波,试图找出如何在使用 homebrew 在 Mac(El Capitan)上安装后解决这个问题。
至少就我而言,这个帖子工作:
# Run the following commands
mysqld stop
mysql.server start
据我所知,我认为(至少在我的情况下)brew mysql 尚未初始化永久套接字,并且我的网络管理员锁定了通过 /tmp/ 连接新进程的能力...
答案4
主要原因是 mariadb/mysql 没有运行。
brew services start mariadb
或者
brew services start mysql
我使用下面的命令解决了 MariaDB 中的相同问题。重新启动 MariaDB/MySQL
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
我已经通过 homebrew 安装了 MariaDB。在运行命令之前我也重新启动了计算机。