当我在测试套件期间尝试连接到本地MySQL服务器时,它失败了,并显示以下错误:
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会产生以下错误:
DatabaseError: Can't connect to MySQL server on '127.0.0.1' (61)发布于 2013-09-17 14:36:50
sudo /usr/local/mysql/support-files/mysql.server start 这对我很有效。但是,如果这不起作用,请确保mysqld正在运行,然后尝试连接。
发布于 2015-05-21 04:32:13
对我来说,问题是我没有运行MySQL服务器。首先运行服务器,然后执行mysql。
$ mysql.server start
$ mysql -h localhost -u root -p发布于 2013-05-10 00:35:42
当我的开发人员安装了像MAMP这样的堆栈管理器时,我就看到过这种情况的发生,该堆栈管理器预先配置了MySQL,安装在非标准位置。
在你的终端运行
mysql_config --socket这将为您提供sock文件的路径。获取该路径并在数据库主机参数中使用它。
你需要做的就是指出你的
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。
https://stackoverflow.com/questions/16325607
复制相似问题