0

我正在尝试使用 postgres 和 django 学习一些 pgbouncer - 但是在生产时我似乎遇到了问题。

所以,我有一个 django 网站说site1,它使用以下 django 数据库settings.py

SECRET_KEY = "dbpassword"
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', 
        'NAME': 'site1db1',                      
        'USER': 'postgres',
        'PASSWORD': SECRET_KEY,
        'HOST': 'localhost',                     
        'PORT': '12517', # custom pgbouncer post                     
      }
   }

以上工作都很好site1- 这在生产中运行。site2现在,我介绍另一个使用新数据库调用的 django 站点(单独的 django 安装)site2db2。所以,目前,我site2在 django 中有我的 settings.py,如下所示:

SECRET_KEY = "dbpassword"
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', 
        'NAME': 'site2db2',                      
        'USER': 'postgres',
        'PASSWORD': SECRET_KEY,
        'HOST': 'localhost',                     
        'PORT': '12517', # custom pgbouncer post                     
      }
   }

不幸的是,当我尝试访问syncdb第二个 django 站点时,我得到了;

django.db.utils.OperationalError: ERROR:  Auth failed

我假设这是因为site1使用相同的端口site2?如何解决这个问题。任何指向我正确方向的指导都会很棒。

4

1 回答 1

0

可能是您的 django 应用程序的连接字符串仍在使用 postgresql 用户名和密码。将连接字符串设置为 pgbouncer 的端口号、用户名和密码。检查 pbBouncer 配置文件中的 auth_type ,将其设置为 trust 并查看它是否有效。

希望这能给你一个提示

于 2014-02-13T16:37:04.583 回答