পোস্টগ্রিএসকিউএল: কোনও ব্যবহারকারীর জন্য পাসওয়ার্ড পরিবর্তন করা কাজ করছে না


9
  • আমি ইনস্টল PostgreSQLউপর EC2মেশিন এবং এখন আমি ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন করতে চানpostgres
  • আমি করি
$ sudo -u postgres psql
psql (9.1.5)
Type "help" for help.

postgres=# ALTER USER postgres WITH PASSWORD 'newpasswd';
ALTER ROLE
  • তারপরে আমি শেলটি থেকে প্রস্থান করি এবং নতুন পাসওয়ার্ড দিয়ে লগইন করার চেষ্টা করি
$ psql -U postgres -W
Password for user postgres: 
psql: FATAL:  Peer authentication failed for user "postgres"

আমার PostgreSQLসংস্করণ হয়

$ psql --version
psql (PostgreSQL) 9.1.5
contains support for command-line editing

আমি কী ভুল করছি?

ধন্যবাদ

আপডেট করুন আমি এর মধ্যে পরিবর্তন করেছি pg_hba.confএবং এখন এটি দেখতে কেমন লাগে

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
#local   all             all                                     peer
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

তারপর আমি আবার চালু postgres

$ sudo /etc/init.d/postgresql restart
 * Restarting PostgreSQL 9.1 database server                                                                                                                                               [ OK ] 

আমি আবার লগ ইন করার চেষ্টা করেছি, কিন্তু ব্যর্থ হয়েছি

$ psql -U postgres -W
Password for user postgres: 
psql: FATAL:  Peer authentication failed for user "postgres"

সম্ভবত পুরাতন পাসওয়ার্ডটি এখনও আপনার ~ / .pgpass ফাইলটিতে সঞ্চিত আছে।

নাহ, সেখানে একটি পাসওয়ার্ড প্রম্পট আছে। আমি ভাবছি যে pg_hba.confসেটটি এমনভাবে সেট আপ করা হয়েছে যাতে এটি পাসওয়ার্ড প্রমাণীকরণ গ্রহণ করে না।

@willglynn, আমার আপডেট চেক করুন, এটা আবার পরিবর্তন করার পর এমনকি ব্যর্থ হচ্ছেpg_hba.conf
Daydreamer

উত্তর:


9

উইলগ্লিন যেমন বলেছে, এটি সম্ভবত আপনার পিজি_এইচ.এইচ.এনএফ ফাইল।

আপনার যদি নিম্নলিখিত লাইন থাকে:

local   all    all     peer

তারপরে এটিকে পরিবর্তন করুন:

local   all    all     md5

তারপরে আপনাকে আপনার নতুন পাসওয়ার্ড দিয়ে লগইন করা উচিত (ধরে নিলে আপনি এটি সঠিকভাবে সরবরাহ করেছেন) :)


হাই @ ডেভিড, আপনি উল্লিখিত হিসাবে আমি চেষ্টা করেছি, তবে এটি এখনও ব্যর্থ হয়েছে, দয়া করে আমার আপডেটটি আমি যা করেছি তা পরীক্ষা করে দেখুন, ধন্যবাদ
দিবস্রষ্টা

এখনও একটি peerলাইন আছে যা postgresব্যবহারকারীর কাছ থেকে স্থানীয় (ইউনিক্স ডোমেন সকেট) সংযোগগুলিতে প্রযোজ্য । এটি ব্যর্থ হবে যদি না দূরবর্তী প্রান্তটি ওএস postgresব্যবহারকারী হিসাবে চালিত না হয় । আরও ভাল বোঝার জন্য pg_hba.conf ডকুমেন্টেশন দেখুন ।

যদিও আমি দৌড়াতে সক্ষম হয়েছি django manage.py syncdb, তবুও pg_hba.confআপনি উল্লিখিত ডকুমেন্টেশনগুলি সম্পর্কে আমি এখনও পড়ব , আপনার সহায়তার জন্য অনেক ধন্যবাদ
দিবাস্বপ্নকার

আমার কেবল যোগ করার দরকার ছিল-h localhost
মাইক

5

আমি কেবল pg_hba.confফাইলটি পরিবর্তনের পাশাপাশি এটি যুক্ত করতে চেয়েছিলাম

local   all    all     peer

প্রতি

local   all    all     md5

গৃহীত উত্তর অনুসারে, ওপি যা করছিল তা করার পরে আমি কেবল লগইন করতে পারতাম লগইন করার -hচেষ্টা করার সময় পতাকাটি পাস করা ।

$ psql -U postgres -h localhost

আশা করি, এটি ভবিষ্যতে কাউকে সহায়তা করবে। এটা আমাকে বাদাম চালাচ্ছিল!


0

তোমার এটা আছে...

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
#local   all             all                                     peer
local   all             all                                     md5

এর দ্বারা পরিবর্তন করুন:

# Database administrative login by Unix domain socket
local   all             postgres                                md5

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
#local   all             all                                     md5

এবং পোস্টগ্রেস্কল পরিষেবা পুনরায় চালু করুন

sudo /etc/init.d/posgresql restart

আমার জন্য এই কাজ


পরিবর্তন করার সময় pg_hba.confআপনার পোস্টগ্রিস পুনরায় আরম্ভ করার দরকার নেই। কনফিগারেশনটি পুনরায় লোড করা যথেষ্ট। যেমন pg_ctl ... reloadবাselect pg_reload_conf()
a_horse_with_no_name

কেবল পুনরায় লোড করুন ... আমি জানতাম না ... ধন্যবাদ
ইস্রায়েল এল রোসাস

-1

লোকেরা, যারা অনেকবার পাসওয়ার্ড পরিবর্তন করার পরে এবং এখানে উল্লিখিত সমস্ত কিছু চেষ্টা করার পরে পাগল হয়ে রয়েছে তাদের ব্যবহারকারীর বৈধতার মেয়াদ শেষ হবে কিনা তা পরীক্ষা করে দেখুন। আপনি এটি পিএসএইচএল 9.x এর মতো 'কখনই শেষ হবে না' তে সেট করতে পারেন:

ALTER ROLE <username> VALID UNTIL 'infinity';

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.