সঠিকভাবে প্রমাণীকরণের জন্য আমি কীভাবে পিজি_ডম্প পেতে পারি


101

আমি হোস্ট পরিবর্তনশীল ব্যবহার চেষ্টা করেছি PGPASSWORDএবং .pgpassএবং এই দুটি তন্ন তন্ন আমাকে ডাটাবেসের এ প্রমাণীকরণ করতে অনুমতি দেবে। আমি chmod'ঘ .pgpassউপযুক্ত অনুমতির এবং চেষ্টা:

export PGPASSWORD=mypass and PGPASSWORD=mypass

পাসওয়ার্ডের মধ্যে একটি থাকে \তবে আমি এটি একক উদ্ধৃতিতে আবদ্ধ করেছিলাম PGPASS='mypass\'এবং এটি এখনও প্রমাণীকরণ করবে না।

আমি দৌড়াচ্ছি:

pg_dump dbname -U username -Fc

এবং আমি এখনও গ্রহণ

pg_dump: [archiver (db)] connection to database "dbname" failed: FATAL:  Peer authentication failed for user "username"

4
এটি "... পিয়ার প্রমাণীকরণ ..." ত্রুটি বার্তার অংশটির অর্থ এটি পাসওয়ার্ড প্রমাণীকরণ মোটেই ব্যবহার করছে না।
মাইলেন এ রাদেব

উত্তর:


202

দ্রুত সমাধান

সমস্যাটি হ'ল এটি peerআপনার বর্তমান ব্যবহারকারীর নামের ভিত্তিতে স্থানীয় প্রমাণীকরণ সম্পাদন করার চেষ্টা করছে । আপনি যদি একটি পাসওয়ার্ড ব্যবহার করতে চান তবে আপনাকে অবশ্যই এর সাথে হোস্টনামটি নির্দিষ্ট করতে হবে -h

pg_dump dbname -U username -h localhost -F c

ব্যাখ্যা

এটি আপনার নীচের কারণে pg_hba.conf

local   all             all                                     peer
host    all             all             127.0.0.1/32            md5

এটি পোস্টগ্রিসকে peerস্থানীয় ব্যবহারকারীদের জন্য প্রমাণীকরণ ব্যবহার করতে বলে যার জন্য আপনার বর্তমান সিস্টেমের ব্যবহারকারীর নামটি মিলিয়ে নিতে পোস্টগ্রিসের ব্যবহারকারীর নাম প্রয়োজন। দ্বিতীয় লাইনটি হোস্টনাম ব্যবহার করে সংযোগগুলিকে বোঝায় এবং আপনাকে md5পদ্ধতির মাধ্যমে কোনও পাসওয়ার্ড দিয়ে অনুমোদনের অনুমতি দেবে ।

আমার পছন্দের বিকাশ কনফিগারেশন

দ্রষ্টব্য : এটি কেবলমাত্র একক-ব্যবহারকারীর ওয়ার্কস্টেশনে ব্যবহার করা উচিত। এটি কোনও উত্পাদন বা মাল্টি-ইউজার মেশিনে একটি বৃহত সুরক্ষা দুর্বলতার দিকে নিয়ে যেতে পারে।

যখন কোনও স্থানীয় পোস্টগ্রেস উদাহরণগুলির বিরুদ্ধে বিকাশ করা হয় তখন আমি আমার স্থানীয় প্রমাণীকরণ পদ্ধতিতে পরিবর্তন করতে চাই trust। এটি কোনও পাসওয়ার্ড ছাড়াই কোনও ব্যবহারকারী হিসাবে স্থানীয় ইউনিক্স সকেটের মাধ্যমে পোস্টগ্রিজের সাথে সংযোগ স্থাপনের অনুমতি দেবে। এটি কেবল peerউপরের দিকে পরিবর্তন করে trustপোস্টগ্রিজ লোড করেই করা যেতে পারে ।

# Don't require a password for local connections
local   all             all                                     trust

6
আপনার কনফিড ফাইলটি কোথায় রয়েছে তা অনিশ্চিত কারও জন্য: ব্যবহার করুন sudo locate pg_hba.conf- এটি sudo হতে হবে যেহেতু পোস্টগ্রিজ ব্যবহারকারীই ডিরেক্টরিতে অ্যাক্সেস সহ একমাত্র (আমার মনে হয়)।
jcollum

আপনার কমান্ডটি আমার পক্ষে কাজ করেছে তবে আমি এটি খুঁজে পাচ্ছি না এটি কোথায়, বা ফাইলটির নাম কী, আমি কীভাবে সেই ফাইলটি সন্ধান করতে পারি?
সোবহান

যদি আমি ডকারের ভিতরে আমার পোস্টগ্রিজগুলি কনফিগার করি তবে এই সেটআপটি আমার লোকালহস্টে আসা সংযোগগুলির জন্য কাজ করবে?
জ্যাক চি

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