2012-09-07 17 views
7

मैं "अजगर manage.py खोल" से इन लाइनों भाग गया:Django डेटाबेस कनेक्शन त्रुटि

from django.db import connection 
cursor = connection.cursor() 

लेकिन निम्न त्रुटि मिला:

Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/django/db/backends/__init__.py", line 306, in cursor 
    cursor = self.make_debug_cursor(self._cursor()) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py", line 177, in _cursor 
    self.connection = Database.connect(**conn_params) 
    File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect 
    connection_factory=connection_factory, async=async) 
OperationalError: FATAL: role "jay" does not exist 

settings.py में मेरे पास है

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'mysite',      
     'USER': '',      
     'PASSWORD': '',     
     'HOST': '',      
     'PORT': '',      
    } 
} 

मैं यहाँ क्या गलत कर रहा हूं? मैंने postgresql और एडाप्टर

उत्तर

10

FATAL: role "jay" does not exist

USER चूंकि यह उपयोग कर रहा है जो कुछ भी अपने स्थानीय उपयोगकर्ता नाम (jay) है, और आप उस नाम से एक PostgreSQL उपयोगकर्ता नहीं बनाया है खाली है,।

प्रयास करें:

psql -u postgres createuser -P jay 

आप शायद, settings.py में प्रॉम्प्ट पर पासवर्ड आपके द्वारा दर्ज डाल करने के लिए जब तक आपके pg_hba.conf प्रमाणन विधि के रूप में उपयोग कर रहा है ident होगा।

+0

डेबियन पर 9.4beta3 पर, कमांड यह होगी: 'sudo सु - postgres -c" CreateUser -पी जय "' वहाँ निश्चित रूप से psql साथ यह करने के लिए और साथ ही एक तरह से है, लेकिन -u होना चाहिए -यू और मुझे अन्य त्रुटियां मिल रही थीं। –

+2

@jcomeau_ictx आपको कभी भी 'सुडो सु -' की आवश्यकता नहीं है। कभी। इसके बजाए 'sudo -u postgres' का प्रयोग करें। वही बात, गन्दा उद्धरण की कोई ज़रूरत नहीं है। –

1

चूंकि आपने कोई उपयोगकर्ता नाम प्रदान नहीं किया है, इसलिए पोस्टग्रेस्क्ल आपके ऑपरेटिंग सिस्टम के उपयोगकर्ता का उपयोगकर्ता नाम उपयोग कर रहा है जिसके अंतर्गत डेटाबेस से कनेक्ट करने के लिए django चलाया जा रहा है। आपको जो त्रुटि मिल रही है वह कहती है कि उस उपयोगकर्ता (जे) को डेटाबेस में परिभाषित नहीं किया गया है।

एक संभावित समाधान mysite डेटाबेस के मालिक के उपयोगकर्ता नाम और पासवर्ड का नाम प्रदान करना है। मेजबान के रूप में localhost को यह भी सुनिश्चित करने के लिए जोड़ें कि postgresql django प्रक्रिया के स्वामित्व वाले उपयोगकर्ता नाम का उपयोग करने के बजाय उपयोगकर्ता/पासवर्ड प्रमाणीकरण का उपयोग करता है।

संबंधित मुद्दे