首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过套接字'/tmp/mysql.sock‘连接到本地MySQL服务器

问无法通过套接字'/tmp/mysql.sock‘连接到本地MySQL服务器
EN

Stack Overflow用户
提问于 2013-05-02 04:06:18
回答 21查看 328.6K关注 0票数 148

当我在测试套件期间尝试连接到本地MySQL服务器时,它失败了,并显示以下错误:

代码语言:javascript
复制
OperationalError: (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")

但是,我始终可以通过运行命令行mysql程序连接到MySQL。ps aux | grep mysql显示服务器正在运行,stat /tmp/mysql.sock确认套接字存在。此外,如果我在该异常的except子句中打开调试器,我就能够使用完全相同的参数可靠地连接。

这个问题重现得相当可靠,但是它似乎不是100%,因为每隔一次蓝月,我的测试套件就会运行,而不会遇到这个错误。当我尝试用sudo dtruss运行时,它没有重现。

所有的客户端代码都是用Python编写的,尽管我不知道这有什么关系。

切换到使用主机127.0.0.1会产生以下错误:

代码语言:javascript
复制
DatabaseError: Can't connect to MySQL server on '127.0.0.1' (61)
EN

回答 21

Stack Overflow用户

发布于 2013-09-17 14:36:50

代码语言:javascript
复制
sudo /usr/local/mysql/support-files/mysql.server start 

这对我很有效。但是,如果这不起作用,请确保mysqld正在运行,然后尝试连接。

票数 163
EN

Stack Overflow用户

发布于 2015-05-21 04:32:13

对我来说,问题是我没有运行MySQL服务器。首先运行服务器,然后执行mysql。

代码语言:javascript
复制
$ mysql.server start
$ mysql -h localhost -u root -p
票数 109
EN

Stack Overflow用户

发布于 2013-05-10 00:35:42

当我的开发人员安装了像MAMP这样的堆栈管理器时,我就看到过这种情况的发生,该堆栈管理器预先配置了MySQL,安装在非标准位置。

在你的终端运行

代码语言:javascript
复制
mysql_config --socket

这将为您提供sock文件的路径。获取该路径并在数据库主机参数中使用它。

你需要做的就是指出你的

代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'test',
        'PASSWORD': 'test',
        'HOST': '/Applications/MAMP/tmp/mysql/mysql.sock',
        'PORT': '',
    },
}

备注

另外,如果您以某种方式在机器上安装了多个mysql服务器实例,您可能连接到了错误的实例,请运行which mysql_config。

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16325607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档