ConnectionError:错误2连接到Python / Django Redis中的unix套接字

时间:2012-10-06 01:26:46

标签: python django sockets unix redis

我正在尝试在全新的Mac上本地运行django项目。它一直工作到昨天,我不知道发生了什么,但突然间我开始得到Redis错误。

我可以加载不查询数据库的页面,但是一旦我尝试进行搜索(部分依赖于Redis),它就不起作用。

有什么想法吗?这是追溯。

Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "/Library/Python/2.7/site-packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
    return self.application(environ, start_response)
  File "/Library/Python/2.7/site-packages/django/core/handlers/wsgi.py", line 241, in __call__
    response = self.get_response(request)
  File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 179, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/Users/dlitwak/mozio/dotcloud/demo/search/views.py", line 391, in results
    cache.setDistanceAndDuration(distance, time, request.user.username)
  File "/Users/dlitwak/mozio/dotcloud/demo/cache.py", line 305, in setDistanceAndDuration
    self.cache.set(key, value, 1800)
  File "/Library/Python/2.7/site-packages/redis_cache/cache.py", line 218, in set
    result = self._set(key, pickle.dumps(value), int(timeout), client, _add_only)
  File "/Library/Python/2.7/site-packages/redis_cache/cache.py", line 199, in _set
    return client.setex(key, value, timeout)
  File "/Library/Python/2.7/site-packages/redis/client.py", line 1221, in setex
    return self.execute_command('SETEX', name, time, value)
  File "/Library/Python/2.7/site-packages/redis/client.py", line 338, in execute_command
    connection.send_command(*args)
  File "/Library/Python/2.7/site-packages/redis/connection.py", line 287, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/Library/Python/2.7/site-packages/redis/connection.py", line 269, in send_packed_command
    self.connect()
  File "/Library/Python/2.7/site-packages/redis/connection.py", line 217, in connect
    raise ConnectionError(self._error_message(e))
ConnectionError: Error 2 connecting to unix socket: 127.0.0.1. No such file or directory.

我们正在运行MYSQL。我可以通过终端访问数据库,所以我认为这不是数据库访问问题。

3 个答案:

答案 0 :(得分:0)

有时这是因为Django无法连接到数据库,而redis正在抛出错误。 因为你可以加载没有数据库的页面,看起来就像是这样。

答案 1 :(得分:0)

好的,所以我们终于开始工作了。

由于某些原因,Redis不再自动启动,并且不在后台运行。

我正在使用Mac,之前我在Ubuntu上运行时会自动执行此操作。解决方案是在一个单独的终端窗口中运行“redis-server”。

我们仍在试图弄清楚如何让它自动启动,或者为什么它首先停止,但是是的。

答案 2 :(得分:0)

如果您使用Mac,使用Homebrew软件包管理器可能是安装和管理Redis的最佳方式。简单地安装Homebrew后,在命令行上安装brew install redis

安装完成后,您可以将其设置为在启动时自动运行:

ln -sfv /usr/local/opts/redis/*.plist ~/Library/LaunchAgents

然后立即运行:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist