Django 1.5:使用 postgresql-psycopg2 运行“python manage.py syncdb”时 Windows 中的 OperationalError

Posted

技术标签:

【中文标题】Django 1.5:使用 postgresql-psycopg2 运行“python manage.py syncdb”时 Windows 中的 OperationalError【英文标题】:Django 1.5 : OperationalError in windows when running "python manage.py syncdb" using postgresql-psycopg2 【发布时间】:2013-05-22 00:29:52 【问题描述】:

这是我的 Django 项目中的 settings.py 文件。操作系统:Windows,主机:本地主机

DATABASES = 
    'default': 
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'postgres',                     
        'USER': 'JESS',
        'PASSWORD': 'dreamhost',
        'HOST': 'localhost',                     
        'PORT': '5432',                     
    

我按照这个博客的说明安装了 PostgreSQL 和 psycopg2

http://shivul.wordpress.com/2010/05/07/installing-django-with-postgresql-on-windows-and-ubuntu/

在运行python manage.py syncdb 时出现以下错误:

OperationalError: Could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432

Could not connect to server: Connection refused (0x0000274D/10061)
    Is the server running on host "localhost" (127.0.0.1)  and accepting
    TCP/IP connections on port 5432

我什至尝试通过 PostgreSQL 安装文件中的 pgadmin3 应用程序编辑设置,它甚至抛出相同的错误

Could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432

Could not connect to server: Connection refused (0x0000274D/10061)
    Is the server running on host "localhost" (127.0.0.1)  and accepting
    TCP/IP connections on port 5432

我在 *** 和 internet 中查看了类似的问题,一切都已过时或无法正常工作。

【问题讨论】:

在数据库设置中,为什么你的端口设置为8000?将其更改为5432 @karthik : 谢谢..我仍然面临另一个问题 OperationalError : FATAL : password authetication failed for user "JESS" 【参考方案1】:

您的服务器仅侦听 IPv4,但 localhost 正在解析您主机上的 IPv4 和 IPv6 地址。

使用127.0.0.1 而不是localhost 来强制建立IPv4 连接,或者编辑postgresql.conf 来告诉您的PostgreSQL 也监听IPv6。显示postgresql.conflisten_addresses 行以获取相关建议,以及select version() 的输出。

【讨论】:

谢谢克雷格,我已经更改了 localhost 值,并且我的 listen_address 有 '*' #for all ,但我现在面临一个新错误:(OperationalError) FATAL: Ident authentication failed for user “username” 我已经查看了您关于类似问题的其他答案“将 pg_hba.conf 编辑为 md5..”我试过了..它仍然抛出相同的错误 @jess.intutive 然后您编辑了错误的pg_hba.conf 行,或者您在编辑后忘记重新启动 PostgreSQL。 谢谢克雷格:我已经编辑了 pg_hba.conf 文件并且它正在工作,但是我已经将所有设置的访问权限从“md5”更改为“信任”,在我启动我的网站后会不会有问题应用程序? @jess.intutive 嗯,这是一个可怕的想法,除非你将其限制为来自本地主机的连接,并且你绝对信任本地的一切机器,包括您将以任何用户身份运行的所有其他脚本和代码。我强烈建议使用md5 并设置合适的密码。请阅读 PostgreSQL 文档的客户端认证章节。【参考方案2】:

我最近遇到了完全相同的消息,但我的问题的原因/解决方案不同。我不确定是什么搞砸了我,但我想是当我看到在 manage.py 中运行 clearsessions 函数时会发生什么。

最后我需要重新启动 postgresql 服务。

为此(Windows 7),

    启动任务管理器 (CTRL+ALT+DEL) 转到服务选项卡 点击右下角的服务按钮。

(也可以在开始菜单中搜索“查看本地服务”)

在服务窗口中: 4.找到postgresql-XXXX。 5.点击它,如果它停止,则启动它。

如果它已经在运行,您不妨从那里重新启动它,看看它是否有帮助。我的问题是服务没有在启动时重新启动。

【讨论】:

以上是关于Django 1.5:使用 postgresql-psycopg2 运行“python manage.py syncdb”时 Windows 中的 OperationalError的主要内容,如果未能解决你的问题,请参考以下文章

使用 Django 1.5 实现多种用户类型

Django 1.5 - 使用新的 StreamingHttpResponse

Django 1.5 - 使用新的 StreamingHttpResponse

使用 Django + PostgreSQL 进行快速搜索

如何在 Django 中使用 PostgreSQL 9.2 JSON 数据类型?

使用 Django 项目在 Docker 中创建 postgresql 数据库