2013-03-16 61 views
84

我在Mac OS X Mountain Lion上使用homebrew install mysql安装了MySQL,但是当我尝试mysql -u root时,我得到了出现以下错误:对于新手:ERROR 2002(HY000):无法通过套接字'/tmp/mysql.sock'连接到本地MySQL服务器

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

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

+2

没有张贴它作为一个答案,但你必须'安装mysql-server'包藏汉,不只是'mysql' – 2013-03-16 13:57:05

+0

你说得对,手帕Panky,我发现了一个脚本,完全在我的系统(Mac OSX Mountain Lion)上安装MySQL所需的全部内容,并且完成了这个任务。我一定错过了几件事。 – shrewdbeans 2013-03-18 10:01:04

+0

@shrewdbeans您发现哪些脚本完全安装了所有MySQL依赖关系? – 2015-11-05 22:19:09

回答

55

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

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

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

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

+53

我刚刚运行了'mysqld',就是这样,这是由于系统的某种_hard重置/关闭造成_poor关闭引起的问题。 – ProfNandaa 2015-10-19 12:08:25

+1

@ProfNandaa你救了我的日子! – KimCrab 2016-11-24 02:12:05

+0

@KimCrab - welcome :) – ProfNandaa 2016-11-26 03:30:32

38

运行: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 

希望这会有所帮助。

3

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

这是由于MySQL未在我的机器上正确设置而导致无法运行。

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

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

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

22

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

要启动服务:

  1. 进入“系统偏好设置”
  2. 在底部窗格中应该有MySQL的图标。
  3. 双击即启动 'MySQL服务器状态',并按下按钮 '启动MySQL服务器'

我ENV:

的Mac约塞米蒂10.10。3

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

+0

我没有找到它 – 2017-03-09 01:46:19

+0

@HosMercury你可以确认你已经安装了MySQL – Ithar 2017-03-09 12:08:20

+0

我从官方的Mysql网页下载并安装mysql。这个解决方案适用于我。谢谢:) – 2017-07-20 03:04:52

11

在下面,我包括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和我的路。

我希望这可以帮助最近的疑难解答者!

+0

'mysql -u root' both works – atilkan 2016-09-09 13:28:49

37

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

连接运行:mysql -urootroot是这里的用户名称。

23

家庭酿造安装后,这很受欢迎。这是由于权限问题。以下命令解决了问题。

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

sudo mysql.server start 
+0

你真棒@nirojan,我正在将我的头靠在墙上:thumsup: – 2018-02-19 07:33:30

0

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

1

对我来说是简单的跑步:

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

,而不是mysqld

7

解决方案围绕:

  • 改变MySQL的权限

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

    sudo mysql.server start 
    

只是为了上了很多伟大的和有用的答案已提供here,并从许多不同的职位增加,尝试指定的主机,如果上面的命令没有解决这个问题给你,即

mysql -u root -p h127.0.0.1 
+0

对我来说这是权限问题 – pfwd 2017-07-06 08:27:15

5

看起来像你的mysql服务器没有启动。我通常运行停止命令,然后重新启动它:

mysqld stop 
mysql.server start 

同样的错误,这对我很有用。

6

这解决了我的问题,当我重新启动mysql服务。只要运行:

brew services start mysql 
1

这方面的工作了几个小时什么工作对我来说是 去到/ etc/mysql /下和编辑my.cnf文件后。添加以下

[client] 
port = 3306 
socket = /var/run/mysqld/mysqld.sock 
+1

这对我也有窍门,虽然对于我来说也是如此我的os/mysql版本是:/etc/my.conf,并且套接字位于/var/lib/mysql/mysql.sock中 /var/log/mysqld.log应该指向套接字文件的位置。 – keithpjolley 2017-06-10 23:34:51

相关问题