pg_configপ্রশংসার তথ্য, এক্সটেনশন এবং ক্লায়েন্ট প্রোগ্রামগুলিকে সংকলন করতে এবং পোস্টগ্রেএসকিউএল এর সাথে লিঙ্ক করতে সহায়তা করার জন্য। এটি মেশিনে সক্রিয় পোস্টগ্রিজ এসকিউএল উদাহরণ (গুলি) সম্পর্কে কিছুই জানে না, কেবল বাইনারি।
pg_hba.confPg কীভাবে ইনস্টল করা হয়েছিল তার উপর নির্ভর করে আরও অনেক জায়গায় উপস্থিত হতে পারে। মান অবস্থান হয় pg_hba.confমধ্যে data_directory(যা হতে পারে ডেটাবেসের /home, /var/lib/pgsql, /var/lib/postgresql/[version]/, /opt/postgres/কিন্তু ব্যবহারকারী এবং packagers এটা করা যেখানেই তারা পছন্দ করতে পারেন, ইত্যাদি ইত্যাদি ইত্যাদি)। দুর্ভাগ্যবশত।
সন্ধানের একমাত্র বৈধ উপায় pg_hba.confহ'ল চলমান পোস্টগ্রেএসকিউএল উদাহরণটি এটি কোথায় রয়েছে তা pg_hba.confজিজ্ঞাসা করা, বা সাসাদমিনকে এটি কোথায় তা জিজ্ঞাসা করা। এমনকি ডেটাডির কোথায় রয়েছে তা জিজ্ঞাসা করে এবং পার্সিংয়ের উপর নির্ভর করতে পারবেন না postgresql.confকারণ -c hba_file=/some/other/pathপিজি শুরু করার সাথে সাথে কোনও এনআর স্ক্রিপ্ট প্যারাম পেরিয়ে যেতে পারে ।
আপনি যা করতে চান তা পোস্টগ্রাইএসকিউএলকে জিজ্ঞাসা করুন:
SHOW hba_file;
এই কমান্ডটি অবশ্যই একটি সুপারসুজার সেশনে চালানো উচিত, সুতরাং শেল স্ক্রিপ্টিংয়ের জন্য আপনি এমন কিছু লিখতে পারেন:
psql -t -P format=unaligned -c 'show hba_file';
ও বিভিন্ন পরিবেশের সেট PGUSER, PGDATABASEইত্যাদি তা নিশ্চিত করার জন্য সংযোগ অধিকার।
হ্যাঁ, এটি কিছুটা মুরগি ও ডিমের সমস্যা, এর মধ্যে যদি ব্যবহারকারী সংযোগ স্থাপন করতে না পারে (বলুন, সম্পাদনা স্ক্রু করার পরে pg_hba.conf) আপনি এটি pg_hba.confঠিক করার জন্য খুঁজে পেতে পারেন না ।
আর একটি বিকল্প হ'ল psকমান্ডের আউটপুটটি দেখুন এবং সেখানে পোস্টমাস্টার ডেটা ডিরেক্টরি আর্গুমেন্টটি -Dদৃশ্যমান কিনা তা উদাহরণস্বরূপ
ps aux | grep 'postgres *-D'
যেহেতু pg_hba.confডেটা ডিরেক্টরিতে থাকবে (আপনি দেবিয়ান / উবুন্টু বা কিছু ডেরাইভেটিভ এবং তাদের প্যাকেজগুলি ব্যবহার না করে) inside
আপনি যদি ডেবিয়ান / উবুন্টু প্যাকেজগুলি থেকে ইনস্টল করা পোস্টগ্র্রেএসকিউএল দ্বারা উবুন্টু সিস্টেমগুলিকে নির্দিষ্ট করে লক্ষ্য করে থাকেন তবে এটি কিছুটা সহজ হয়ে যায়। initdbকারওর হাতের সংকলিত-উত্স পিজির সাথে আপনাকে কোনও হস্তান্তর করতে হবে না যে কারও বাড়ির দির জন্য 'দা দাতাদির' বা কোনও এন্টারপ্রাইজডিবি পিজি ইন / অপ্ট ইন ইনস্টল করুন ইত্যাদি আপনি জিজ্ঞাসা করতে পারেন pg_wrapper, দেবিয়ান / উবুন্টু মাল্টি সংস্করণ Pg ম্যানেজার, যেখানে পোস্টগ্রি ব্যবহার করছে কমান্ড থেকে ।pg_lsclusterspg_wrapper
আপনি যদি সংযোগ স্থাপন করতে না পারেন (পিজি চলছে না, বা pg_hba.confসংযোগের জন্য আপনাকে সম্পাদনা করতে হবে) আপনাকে pg_hba.confফাইলগুলির জন্য সিস্টেমটি অনুসন্ধান করতে হবে । ম্যাক এবং লিনাক্সে এর মতো কিছু sudo find / -type f -name pg_hba.confকরবে। তারপরে PG_VERSIONএকই ডিরেক্টরিতে ফাইলটি পরীক্ষা করে দেখুন এটি ঠিক পোস্টগ্রিএসকিউএল সংস্করণ আপনার যদি একাধিক থাকে তবে তা সঠিক। (যদি pg_hba.confথাকে /etc/, এই উপেক্ষা, এটা পেরেন্ট ডাইরেক্টরি নাম পরিবর্তে এর)। একই পোস্টগ্রাইএসকিউএল সংস্করণের জন্য যদি আপনার একাধিক ডেটা ডিরেক্টরি থাকে তবে আপনাকে ডাটাবেস আকার psদেখতে হবে , চলমান পোস্টগ্রাসের কমান্ড লাইনটি পরীক্ষা করে দেখুন যে এটি -Dসম্পাদনা করছে যেখানে ডেটা ডিরেক্টরি আর্গুমেন্টের সাথে মেলে কিনা ।