authentication - خطأ PostgreSQL:Fatal:الدور "username" غير موجود




(9)

أقوم بإعداد برنامج PostgreSQL 9.1 الخاص بي. لا يمكنني فعل أي شيء باستخدام PostgreSQL: لا يمكن createuser ، لا يمكن createuser ؛ كافة العمليات بإرجاع رسالة الخطأ

Fatal: role h9uest does not exist

h9uest هو اسم حسابي ، وأقوم sudo apt-get install PostgreSQL 9.1 تحت هذا الحساب.
يستمر خطأ مماثل لحساب root .


Answers

ربما تحتاج إلى استخدام postgres مستخدم النظام لإنشاء قاعدة البيانات الخاصة بك - ما دمت لم تقم بإعداد (ووفرت الامتيازات اللازمة) لمستخدم قاعدة البيانات المسمى "h9uest" الذي يتوافق مع مستخدم النظام الخاص بك بنفس الاسم ، لذلك يتم تمكينه بواسطة طريقة مصادقة ident الافتراضية.

sudo su - postgres

أو الشكل الأكثر حداثة:

sudo -u postgres -i

على النحو الموصى به here here .

ثم أعد المحاولة. اكتب exit عند الانتهاء من التشغيل مثل postgres مستخدم النظام.

هذا على افتراض أن تثبيت Postgres (أو أي شخص) قام بالفعل بإنشاء مستخدم نظام يسمى postgres ويوجد مستخدم قاعدة بيانات بنفس الاسم ، وكلاهما الحالة في عمليات التثبيت العادية. النقطة هي أنك تستخدم مستخدم النظام الذي يطابق دور قاعدة البيانات ليتم منحه إمكانية الوصول عبر مصادقة ident .

اقرأ عن أدوار قاعدة البيانات ومصادقة العميل في الدليل.


sudo su - postgres

psql template1

إنشاء دور على pgsql مع امتياز "superuser"

CREATE ROLE username superuser;
eg. CREATE ROLE demo superuser;

ثم قم بإنشاء المستخدم

CREATE USER username; 
eg. CREATE USER demo;

تعيين امتياز للمستخدم

GRANT ROOT TO username;

ثم قم بتمكين تسجيل الدخول هذا المستخدم ، حتى تتمكن من تشغيل: على سبيل المثال psql template1 ، من محطة $ عادية:

ALTER ROLE username WITH LOGIN;

في مطالبة المستخدم المحلية ، وليس موجه المستخدم الجذر ، اكتب

sudo -u postgres createuser <local username>

ثم أدخل كلمة المرور للمستخدم المحلي.

ثم أدخل الأمر السابق الذي أنشأ "اسم مستخدم" الدور غير موجود. "

فوق الخطوات حل المشكلة بالنسبة لي. إذا لم يكن الأمر كذلك ، يرجى إرسال الرسائل النهائية للخطوات المذكورة أعلاه.


طريقة العمل،

  1. vi /etc/postgresql/9.3/main/pg_hba.conf
  2. local all postgres peer هنا تغيير الأقران على الثقة
  3. إعادة تشغيل ، sudo service postgresql restart

  4. الآن في محاولة ، psql -U postgres



هذا يعمل بالنسبة لي:

psql -h localhost -U postgres

لا يؤدي تثبيت postgres باستخدام apt-get إنشاء دور مستخدم أو قاعدة بيانات.

لإنشاء دور مستخدم متميز وقاعدة بيانات لحساب المستخدم الشخصي الخاص بك:

sudo -u postgres createuser -s $(whoami); createdb $(whoami)


بعد تجربة العديد من حلول الشعوب الأخرى ، وبدون نجاح ، ساعدتني هذه الإجابة أخيرًا.

https://.com/a/16974197/2433309

باختصار ، الجري

sudo -u postgres createuser owning_user

يخلق دور بالاسم owning_user (في هذه الحالة ، h9uest). بعد ذلك يمكنك تشغيل rake db:create من المحطة الطرفية تحت أي اسم حساب قمت بإعداده دون الحاجة إلى الدخول في بيئة postgres.


  1. تسجيل الدخول كمستخدم افتراضي: sudo -i -u postgres
  2. إنشاء مستخدم جديد: createuser --interactive
  3. عند المطالبة باسم الدور ، أدخل اسم مستخدم linux ، ثم حدد نعم لمسألة المستخدم المتميز.
  4. لا يزال تسجيل الدخول كمستخدم postgres ، وإنشاء قاعدة بيانات: createdb <username_from_step_3>
  5. يتم تسجيل تأكيد الخطأ (الأخطاء) عن طريق إدخال: psql في موجه الأوامر.
  6. يجب أن يظهر الإخراج psql (xxx) Type "help" for help.






postgresql authentication