ত্রুটি পাওয়া: পিএলএসকিউএল রেলের সাথে কাজ করার চেষ্টা করার সময় পিয়ার প্রমাণীকরণ ব্যবহারকারী "পোস্টগ্রিজ" ব্যবহারকারীর জন্য ব্যর্থ হয়েছে


735

আমি ত্রুটি পাচ্ছি:

FATAL: Peer authentication failed for user "postgres"

যখন আমি পোস্টেলগুলি রেলের সাথে কাজ করার চেষ্টা করি।

এখানে আমার pg_hba.conf, আমার database.yml, এবং সম্পূর্ণ ট্রেসের একটি ডাম্প

আমি পিজি_এইচএ-তে এমডি 5 তে প্রমাণীকরণ পরিবর্তন করেছি এবং বিভিন্ন জিনিস চেষ্টা করেছি, কিন্তু কেউ কাজ করছে বলে মনে হয় না।

আমি ব্যর্থ 3.2, FATAL: পিয়ার প্রমাণীকরণ ব্যবহারকারীর জন্য পিয়ার প্রমাণীকরণ ব্যর্থ (পিজি :: ত্রুটি) অনুযায়ী একটি নতুন ব্যবহারকারী এবং ডাটাবেস তৈরি করার চেষ্টা করেছি

তবে তারা প্যাগাডমিনে প্রদর্শিত হয় না বা আমি চালানোর সময়ও না sudo -u postgres psql -l

আমি ভুল করছি যেখানে কোন ধারণা?


1
1): আপনার "ডেটাবেজে" পোস্টগ্র্রেস নামের একটি ব্যবহারকারী তৈরি হয়েছে এবং এটি আপনার ডেটাবেজে ডান আছে তা নিশ্চিত করুন 2): তার একটি পাসওয়ার্ড রয়েছে তা নিশ্চিত করুন 3): আপনার কনফিগারেশন / ডাটাবেস.আইএমএলে অধিকারের শংসাপত্রগুলি (ব্যবহারকারীর + পাসওয়ার্ড) রয়েছে কিনা তা নিশ্চিত করুন
মিঃ যোশিজি


13
দেখুন এই উত্তর - সংযোগ ব্যর্থ হতে পারে localhostকিন্তু উপর সফল 127.0.0.1
uvsmtid

9
আমার ক্ষেত্রে আমি যোগ করতে প্রয়োজন host: localhostমধ্যে database.ymlফাইল।
মিহাইল ভেলিকভ

এই লিঙ্কটি আমাকে সহায়তা করেছে suite.opengeo.org/docs/latest/dataadmin/pgGettingStarted/…
সুদীপ ভান্ডারী

উত্তর:


1027

সমস্যাটি এখনও আপনার pg_hba.confফাইল ( /etc/postgresql/9.1/main/pg_hba.conf*)।

এই লাইন:

local   all             postgres                                peer

হতে হবে:

local   all             postgres                                md5

* যদি আপনি এই ফাইলটি খুঁজে না পান তবে দৌড়ানোর সময় locate pg_hba.confআপনাকে ফাইলটি কোথায় তা দেখানো উচিত।

এই ফাইলটি পরিবর্তন করার পরে, আপনার পোস্টগ্রিএসকিউএল সার্ভারটি পুনরায় আরম্ভ করতে ভুলবেন না। আপনি যদি লিনাক্সে থাকেন তবে তা হবে sudo service postgresql restart

এগুলি প্রমাণীকরণ পদ্ধতিতে অফিসিয়াল পোস্টগ্রেএসকিউএল ডক্স অনুসারে উভয় বিকল্পের সংক্ষিপ্ত বিবরণ ।

পিয়ারের প্রমাণীকরণ

পিয়ার প্রমাণীকরণ পদ্ধতিটি কার্নেলের কাছ থেকে ক্লায়েন্টের অপারেটিং সিস্টেমের ব্যবহারকারীর নাম গ্রহণ করে এবং এটি অনুমোদিত ডাটাবেস ব্যবহারকারী নাম হিসাবে ব্যবহার করে (userচ্ছিক ব্যবহারকারী নাম ম্যাপিং সহ) কাজ করে। এই পদ্ধতিটি কেবল স্থানীয় সংযোগগুলিতে সমর্থিত।

পাসওয়ার্ড প্রমাণীকরণ

পাসওয়ার্ড-ভিত্তিক প্রমাণীকরণ পদ্ধতিগুলি এমডি 5 এবং পাসওয়ার্ড। এই পদ্ধতিগুলি যেমন সংযোগ জুড়ে পাসওয়ার্ডটি প্রেরণ করা হয়, যথাক্রমে এমডি 5-হ্যাশড এবং ক্লিয়ার টেক্সট ব্যতীত একইভাবে কাজ করে।

আপনি যদি পাসওয়ার্ড "স্নিফিং" আক্রমণ সম্পর্কে উদ্বিগ্ন হন তবে এমডি 5 অগ্রাধিকার দেওয়া হয়। সম্ভব হলে সরল পাসওয়ার্ডটি সর্বদা এড়ানো উচিত। তবে, md5 db_user_namespace বৈশিষ্ট্যটি ব্যবহার করা যাবে না। যদি সংযোগটি এসএসএল এনক্রিপশন দ্বারা সুরক্ষিত থাকে তবে পাসওয়ার্ডটি নিরাপদে ব্যবহার করা যেতে পারে (এসএসএল শংসাপত্রের প্রমাণীকরণ যদি এসএসএল ব্যবহারের উপর নির্ভর করে তবে একটি ভাল পছন্দ হতে পারে)।

এর জন্য নমুনা অবস্থান pg_hba.conf:
/etc/postgresql/9.1/main/pg_hba.conf


50
এটি পরিবর্তন করার পরে আপনাকে আপনার /etc/init.d/postgresql reload
পোস্টগ্র্যাস্কিল

78
এই ফাইলটি এখানে রাখার কারণ আমি সবসময় এই ফাইলটি কোথায় তা ভুলে যাই/etc/postgresql/9.1/main/pg_hba.conf
ডগ

12
@ ফানকোট্রন কমপক্ষে আমার এলিমেন্টারিওস (উবুন্টু) ইনস্টলেশনতেও sudo service postgreql restartকাজ করে।
মার্নেন লাইবো-কোসার

13
আমার নিজের প্রশ্নের উত্তর দেওয়ার জন্য: 'পিয়ার' প্রমাণীকরণের অর্থ হ'ল পোস্টগ্রিজ অপারেটিং সিস্টেমটিকে আপনার লগইন নামের জন্য জিজ্ঞাসা করে এবং এটি প্রমাণীকরণের জন্য ব্যবহার করে, সুতরাং ওএস এবং পোস্টগ্রাউসে থাকা ব্যবহারকারীদের একই হওয়া উচিত। 'এমডি 5' এনক্রিপ্ট করা পাসওয়ার্ড প্রমাণীকরণ ব্যবহার করে।
ডেনিস

9
আমি পরিবর্তন বুঝতে পারি। তবে কেন এটি ডিফল্ট আচরণ নয়? এমডি 5 ব্যবহার করে কি কোনও ত্রুটি রয়েছে?
ভিক্টর মার্কোনি

361

Postgresql ইনস্টল করার পরে আমি নীচের পদক্ষেপগুলি করেছি।

  1. pg_hba.confউবুন্টুর জন্য ফাইলটি খুলুন এটি এতে থাকবে /etc/postgresql/9.x/mainএবং এই লাইনটি পরিবর্তন করবে :

    স্থানীয় সমস্ত পোস্ট পিয়ার

    প্রতি

    স্থানীয় সমস্ত পোস্ট বিশ্বাস
  2. সার্ভারটি পুনরায় চালু করুন

    $ sudo service postgresql restart
  3. পিএসকিএল এ লগইন করুন এবং আপনার পাসওয়ার্ড সেট করুন

    $ psql -U postgres
    db> ALTER USER postgres with password 'your-pass';
  4. অবশেষে এর pg_hba.confথেকে পরিবর্তন করুন

    স্থানীয় সমস্ত পোস্ট বিশ্বাস

    প্রতি

    স্থানীয় সমস্ত পোস্ট এমডি 5

Postgresql সার্ভারটি পুনরায় চালু করার পরে, আপনি এটি নিজের পাসওয়ার্ড দিয়ে অ্যাক্সেস করতে পারেন

প্রমাণীকরণ পদ্ধতি বিশদ:

বিশ্বাস - যে কেউ সার্ভারের সাথে সংযোগ করতে পারে সে ডেটাবেস অ্যাক্সেসের জন্য অনুমোদিত

পিয়ার - অ্যাক্সেসের জন্য ক্লায়েন্টের অপারেটিং সিস্টেমের ব্যবহারকারীর নামটি ডাটাবেস ব্যবহারকারী নাম হিসাবে ব্যবহার করুন।

এমডি 5 - পাসওয়ার্ড-বেস প্রমাণীকরণ

আরও রেফারেন্স জন্য এখানে


17
"বিশ্বাস" এ পদ্ধতিটি পরিবর্তন করা আমার পক্ষে কাজ করেছিল। প্রমাণীকরণ পদ্ধতির বিশদটির ব্যাখ্যার জন্য +1।
লা-কোমড্রেজা

4
ওএস এক্স হোমব্রুতে ডিফল্ট হ'ল বিশ্বাস, আবার উবুন্টুতে কোনওভাবে ডিফল্টটিকে "পিয়ার" হিসাবে সেট করা হয়, যা আমার সেটআপ এবং আমার সহকর্মীর মধ্যে বিভেদ সৃষ্টি করেছিল। আমরা তাকে এমডি 5 এ পরিবর্তন করেছিলাম যা কোনও সহায়তা করেনি, সুতরাং "বিশ্বাস" এখানে আসল উত্তর (আমরা কেবল বিকাশের পরীক্ষা করছি)। আরও upvotes পাওয়া উচিত।
এক্সজি

2
আপনি প্রথম থেকেই
এমডি

2
এইভাবে আমার জন্য কাজ করছে, প্রথমে md5 পদ্ধতি ব্যবহার করা হয়নি।
সানিপার্ড

একই পাসওয়ার্ড ব্যবহার করা প্রয়োজন? sudo passwd postgres
পিটার ক্রাউস

211

আপনি যদি লোকালহোস্টের (127.0.0.1) এর সাথে সংযোগ স্থাপন করেন তবে আপনার সেই বিশেষ সমস্যাটি অনুভব করা উচিত নয়। আমি pg_hba.conf দিয়ে খুব বেশি উপহাস করব না তবে এর পরিবর্তে আমি আপনার সংযোগের স্ট্রিং সামঞ্জস্য করব:

psql -U someuser -h 127.0.0.1 database

যেখানে কোনও ব্যবহারকারী আপনার ব্যবহারকারী হিসাবে আপনি সংযুক্ত হচ্ছেন এবং ডাটাবেস হ'ল সেই ডাটাবেস যা আপনার ব্যবহারকারীর সাথে সংযোগের অনুমতি রয়েছে।

পোস্টগ্রিস সেটআপ করতে আমি ডিবিয়ানকে যা করি তা এখানে:

http://www.postgresql.org/download/linux/debian/  (Wheezy 7.x)

as root 

    root@www0:~# echo "deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main" >> /etc/apt/sources.list

    root@www0:~# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

    root@www0:~# apt-get update

    root@www0:~# apt-get install postgresql-9.4        

    root@www0:~# su - postgres 

    postgres@www0:~$ createuser --interactive -P someuser
    Enter password for new role:
    Enter it again:
    Shall the new role be a superuser? (y/n) n
    Shall the new role be allowed to create databases? (y/n) y
    Shall the new role be allowed to create more new roles? (y/n) n

    postgres@www0:~$ createdb -O someuser database

    postgres@www0:~$ psql -U someuser -h 127.0.0.1 database

উপভোগ করুন!


16
আমি মনে করি এটি সর্বোত্তম সমাধান কারণ এটি অন্যান্য উত্তরগুলির পরামর্শ অনুসারে বিশ্বব্যাপী কনফিগারেশন নিয়ে বিশৃঙ্খলা না করে স্থানীয় সমস্যার সমাধান করে।
জেটিয়ন

1
আমাকে host: 127.0.0.1কনফিগারেশন / ডাটাবেস.আইএমএল-এ ডিফল্ট থেকে লোকালহোস্টে পরিবর্তন করতে হয়েছিল - এটি একই মেশিনে রয়েছে তাই আমি বুঝতে পারি না কেন
অ্যান্থনি

অ্যান্টনি, আপনি কি বলছেন যে আপনি আপনার ডাটাবেস.আইএমএলে লোকালহোস্টকে 127.0.0.1 এ সামঞ্জস্য না করা পর্যন্ত সংযোগ ব্যর্থতা অনুভব করেছেন? আমি যদি আপনার / ইত্যাদি / হোস্ট ফাইলগুলি পরীক্ষা করে দেখার পরামর্শ দিই। অন্যথায়, লোকালহোস্ট সমাধানের সাথে সম্পর্কিত আরও কিছু বিজোড়তা থাকতে পারে।
স্টাইলাস ইটার

1
স্থানীয় পিয়ার প্রমাণীকরণ পদ্ধতির সাথে জগাখিচির সাথে তুলনা করার সময় এটি অনেক বেশি মার্জিত।
এমডিএইচ

1
এটি এখন পর্যন্ত সেরা সমাধান আইএমও
সলিল জুনিয়র

45

এটি আমার পক্ষে কাজ করেছে !!

sudo -u postgres psql

যতক্ষণ না আপনার বর্তমান লগ ইন করা ব্যবহারকারী সুদোয়ার্স ফাইলে থাকে ততক্ষণ এটি কাজ করতে হবে।
আবুব্যাকার সিদ্দিক

16

আপনার যদি সমস্যা হয় তবে আপনাকে এটি সনাক্ত করতে হবে pg_hba.conf। আদেশটি হ'ল:

find / -name 'pg_hba.conf' 2>/dev/null

এবং তারপরে কনফিগারেশন ফাইলটি পরিবর্তন করুন:

পোস্টগ্র্যাস্কল 9.3

পোস্টগ্র্যাস্কল 9.3

পোস্টগ্র্যাস্কল 9.4

পোস্টগ্র্যাস্কল 9.3

পরবর্তী পদক্ষেপটি: আপনার ডিবি উদাহরণটি পুনরায় আরম্ভ করা:

service postgresql-9.3 restart

আপনার যদি কোনও সমস্যা হয় তবে আপনাকে আবার পাসওয়ার্ড সেট করতে হবে:

ALTER USER db_user with password 'db_password';


16
  1. এই /etc/postgresql/9.x/main/ এ যান এবং pg_hba.conf ফাইলটি খুলুন

আমার ক্ষেত্রে:

$>  sudo nano /etc/postgresql/9.3/main/pg_hba.conf
  1. প্রতিস্থাপন পিয়ার সঙ্গে MD5

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

ইউনিক্স ডোমেন সকেটের স্থানীয় ডেটাবেস প্রশাসনিক লগইন সহ সকল পোস্টগ্রেস পিয়ার

# TYPE  DATABASE        USER            ADDRESS                 METHOD

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

এই:

ইউনিক্স ডোমেন সকেটের স্থানীয় ডেটাবেস প্রশাসনিক লগইন সমস্ত পোস্ট এমডি 5 পোস্ট করে

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
  1. তারপরে পিজি সার্ভার পুনরায় চালু করুন:

    ।> সুডো সার্ভিস পোস্টগ্র্যাস্কেল পুনঃসূচনা

নীচে পোস্টগ্রিজের সাথে সংযোগের জন্য ব্যবহৃত মেথোডিএসগুলির তালিকা রয়েছে:

# METHOD can be "trust", "reject", "md5", "password", "gss", "sspi",
# "krb5", "ident", "peer", "pam", "ldap", "radius" or "cert".  Note that
# "password" sends passwords in clear text; "md5" is preferred since
# it sends encrypted passwords.

দ্রষ্টব্য: আপনি যদি তৈরি না করেন তবে এখনও ব্যবহারকারী পোস্টগ্রিজ করেন। এটি তৈরি করুন এবং এখন আপনি সেই ব্যবহারকারীর শংসাপত্রগুলি ব্যবহার করে পোস্টগ্রিজ সার্ভারটি অ্যাক্সেস করতে পারেন।

টিপ: পোস্টগ্রিস পুনরায় চালু হওয়ার পরে যদি এটি কাজ না করে তবে টার্মিনালটি বন্ধ করে আবার খুলুন।


15
sudo psql --host=localhost --dbname=database-name --username=postgres

এটি আমার সমস্যা সমাধান করেছে


3
আমি ভাবিনি যে এটি সহজ হবে, তবে এটি আমার পক্ষে ডেবিয়ান 9 এর অধীনে কাজ করেছে
হেডেন থ্রিং

এটি উবুন্টু 19.10
ভিথাল রেড্ডি

ধন্যবাদ, এটি উবুন্টু 19.10 এবং পিএসএইচএল 12.3 এ কাজ করছে
শুভ সিং

10

আমারও একই সমস্যা ছিল।

ডিপা থেকে সমাধানটি একেবারে সঠিক।

আপনার নিজের পোস্টগ্র্রেএসকিউএল ব্যবহারের জন্য কনফিগার করা আছে তা নিশ্চিত করুন।

ফাইলটি পরীক্ষা করুন:

$ ls /etc/postgresql/9.1/main/pg_hba.conf -l

এই ফাইলটির অনুমতি আপনি আপনার পিএসএকএল দিয়ে নিবন্ধিত করেছেন এমন ব্যবহারকারীকে দেওয়া উচিত।

আরও। যদি আপনি এখন পর্যন্ত ভাল থাকেন ..

@ Depa এর নির্দেশ অনুসারে আপডেট করুন।

অর্থাত

$ sudo nano /etc/postgresql/9.1/main/pg_hba.conf

এবং তারপরে পরিবর্তনগুলি করুন।


আমি একই সমস্যা সম্মুখীন। তবে আমার কী অনুমতি নিতে হবে তা আমি জানি না। আপনি কি আমাকে সাহায্য করতে পারেন. আমি 'ls' কমান্ডের আউটপুট পাচ্ছি-rw-r----- 1 postgres postgres 4640 Jun 16 09:59 /etc/postgresql/9.5/main/pg_hba.conf
সান

8

আপনি যদি ডিফল্ট কনফিগারেশন রাখতে চান তবে একটি নির্দিষ্ট ব্যবহারকারী / ডিবি সংযোগের জন্য সকেট সংযোগের সাথে এমডি 5 প্রমাণীকরণ চান, "স্থানীয় সমস্ত / সমস্ত" লাইনের আগে একটি "স্থানীয়" লাইন যুক্ত করুন:

# TYPE  DATABASE     USER         ADDRESS             METHOD

# "local" is for Unix domain socket connections only
local   username     dbname                           md5  # <-- this line
local   all          all                              peer
# IPv4 local connections:
host    all          all          127.0.0.1/32        ident
# IPv6 local connections:
host    all          all          ::1/128             ident

এই উত্তরের "পূর্বে" অন্যান্য উত্তরের আরও বর্ধনের দাবিদার। এটি পিএসএইচএল pg_hba.conf ফাইলটিতে রেকর্ডগুলি পরীক্ষা করে যা ডক্সে বলা হয়েছে: postgresql.org/docs/11/static/auth-pg-hba-conf.html
ইয়েদিন

# টাইপ ডেটাবেস ব্যবহারকারী ঠিকানা মেথড স্থানীয় নাম ব্যবহারকারীর নাম এমডি 5 # <- এই লাইনটি
যথাযথ

7

আমি ক্লোন করা সার্ভারে ডেটা ডিরেক্টরি সরিয়েছিলাম এবং পোস্টগ্রাগ হিসাবে লগইন করতে সমস্যা হচ্ছিলাম। পোস্টগ্রিসের পাসওয়ার্ডটিকে পুনরায় সেট করা আমার পক্ষে কাজ করে।

root# su postgres
postgres$ psql -U postgres
psql (9.3.6) 
Type "help" for help. 
postgres=#\password 
Enter new password: 
Enter it again: 
postgres=#

6

উপরের সম্পাদনাগুলি আমার জন্য কাজ করেছিল, আমি যখন বুঝতে পেরেছিলাম যে পোস্টগ্রিস সার্ভার তৈরি করার পরে আমার পুনরায় চালু করা দরকার। উবুন্টুর জন্য:

sudo /etc/init.d/postgresql restart

6

পদ্ধতি পরিবর্তন পিয়ার থেকে আস্থা pg_hba.conf মধ্যে (/etc/postgresql/9.1/main/pg_hba.conf | লাইন 85) ইস্যু solves। এমডি 5 যুক্ত করা একটি পাসওয়ার্ডের জন্য জিজ্ঞাসা করে, সুতরাং যদি পাসওয়ার্ড ব্যবহার না করা প্রয়োজন হয় , এমডি 5 এর পরিবর্তে বিশ্বাস ব্যবহার করুন ।



5

নীচের কমান্ডটি আমার পক্ষে কাজ করে:

psql -d myDb -U username -W

ম্যান পিএসকিএল-W --password Force psql to prompt for a password before connecting to a database. This option is never essential, since psql will automatically prompt for a password if the server demands password authentication. However, psql will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt.
ইয়ারোস্লাভ

3

আপনার বিশ্বাসের জন্য কেবল মেথডোড সেট করা দরকার।

#TYPE  DATABASE        USER            ADDRESS                 METHOD
local    all             all                                     trust

এবং পোস্টগ্রিজ সার্ভার পুনরায় লোড করুন।

# service postgresql-9.5 reload

Pg_hba.conf এ পরিবর্তনগুলির জন্য পুনরায় পোস্টগার্স সার্ভারের প্রয়োজন নেই। সবে নতুন করে


3

অন্যান্য উত্তরগুলির মধ্যে অনেকগুলি বিভিন্ন কনফিগার ফাইলগুলিতে সেটিংস সম্পর্কিত এবং এর সাথে সম্পর্কিত উত্তরগুলি pg_hba.confপ্রয়োগ করে এবং 100% সঠিক। তবে, নিশ্চিত হয়ে নিন যে আপনি সঠিক কনফিগারেশন ফাইলগুলি সংশোধন করছেন

অন্যরা যেমন উল্লেখ করেছে যে কনফিগারেশন ফাইলের অবস্থানগুলি মূল কনফিগার ফাইলের অভ্যন্তরে বিভিন্ন সেটিংসের সাথে ওভাররাইড করা যেতে পারে, পাশাপাশি কমান্ড লাইনে মূল কনফিগারেশন ফাইলের সাথে একটি পথ সরবরাহ করে -D বিকল্পটি ।

আপনার কনফিগারেশন ফাইলগুলি কোথায় পড়ছে তা দেখানোর জন্য আপনি নীচের কমান্ডটি ব্যবহার করতে পারেন (ধরে নিই যে আপনি পিএসকিএল চালু করতে পারেন)। এটি কেবল একটি সমস্যা সমাধানের পদক্ষেপ যা কিছু লোককে সহায়তা করতে পারে:

select * from pg_settings where setting~'pgsql';  

আপনার পোস্টগ্রিজ ব্যবহারকারীর জন্য হোম ডিরেক্টরিটি যেখানে আপনি এটি প্রত্যাশা করেছেন তাও আপনার নিশ্চিত করা উচিত। আমি এটি বলছি কারণ আপনার প্রম্পটটি ~আপনার হোম ডিরেক্টরিটির প্রকৃত পাথের পরিবর্তে ' ' প্রদর্শন করবে , কারণ এটি এত স্পষ্ট নয়। অনেক ইনস্টলেশন পোস্টগ্র্রেস ব্যবহারকারী হোম ডিরেক্টরিতে ডিফল্ট হয়/var/lib/pgsql

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

usermod -d /path/pgsql postgres

অবশেষে আপনার পিজিডিটিএ ভেরিয়েবলটি টাইপ করে সঠিকভাবে সেট করা আছে তা নিশ্চিত করুন echo $PGDATA, যা এর অনুরূপ কিছু আউটপুট দেয়:

/path/pgsql/data

যদি এটি সেট না করা থাকে বা আপনি যা আশা করেন তার থেকে আলাদা কিছু দেখায়, আপনার প্রারম্ভকালে বা আরসি ফাইলগুলি যেমন .প্রফাইল বা .bash.rc পরীক্ষা করুন - এটি আপনার ওএস এবং আপনার শেলের উপর নির্ভর করে ব্যাপকভাবে পরিবর্তিত হবে। একবার আপনি আপনার মেশিনের জন্য সঠিক প্রারম্ভিক স্ক্রিপ্টটি নির্ধারণ করার পরে, আপনি নিম্নলিখিতটি সন্নিবেশ করতে পারেন:

export PGDATA=/path/pgsql/data

আমার সিস্টেমের জন্য, আমি /etc/profile.d/profile.local.shএটি এতে রেখেছি যাতে এটি সমস্ত ব্যবহারকারীর জন্য অ্যাক্সেসযোগ্য ছিল।

আপনার এখন যথারীতি ডাটাবেস শুরু করতে সক্ষম হওয়া উচিত এবং আপনার সমস্ত পিএসকিএল পাথের সেটিংস সঠিক হওয়া উচিত!


3

pg_config প্রশংসা তথ্যের জন্য, এক্সটেনশন এবং ক্লায়েন্ট প্রোগ্রামগুলিকে সংকলন করতে এবং PostgreSQL এর সাথে লিঙ্ক করতে সহায়তা করে। এটি মেশিনে সক্রিয় পোস্টগ্রিজ এসকিউএল উদাহরণ (গুলি) সম্পর্কে কিছুই জানে না, কেবল বাইনারি।

pg_hba.conf Pg ইনস্টল করা হয়েছে তার উপর নির্ভর করে আরও অনেক জায়গায় উপস্থিত হতে পারে। স্ট্যান্ডার্ড অবস্থানটি ডাটাবেসের ডেটা-ডিরেক্টরিতে (যা / home, / var / lib / pgsql, / var / lib / postgresql / [সংস্করণ] /, / অপ্ট / পোস্টগ্রিস / ইত্যাদি ইত্যাদি) এর মধ্যে pg_hba.conf) তবে ব্যবহারকারী এবং প্যাকেজকারীরা যেখানে খুশি সেখানে এটি রাখতে পারেন। দুর্ভাগ্যবশত।

Pg_hba.conf সন্ধানের একমাত্র বৈধ উপায় হ'ল চলমান PostgreSQL উদাহরণটি জিজ্ঞাসা করা যেখানে এটি pg_hba.conf, বা সিসাদাদিনকে এটি কোথায় তা জিজ্ঞাসা করুন। আপনি ডেটাডির কোথায় আছেন জিজ্ঞাসা করে এবং পোস্টগ্রেএসএলএল.কোনফ পার্স করার উপর নির্ভর করতে পারবেন না কারণ পিজি শুরু করার সাথে সাথে কোনও সি-স্ক্রিপ্ট -c hba_file = / কিছু / অন্য / পাথের মতো পারম পাস করতে পারে।

আপনি যা করতে চান তা পোস্টগ্রাইএসকিউএলকে জিজ্ঞাসা করুন:

SHOW hba_file;

এই কমান্ডটি অবশ্যই একটি সুপারসুজার সেশনে চালানো উচিত, সুতরাং শেল স্ক্রিপ্টিংয়ের জন্য আপনি এমন কিছু লিখতে পারেন:

psql -t -P format=unaligned -c 'show hba_file';

এবং সংযোগটি সঠিক কিনা তা নিশ্চিত করতে পরিবেশের ভেরিয়েবলগুলি PGUSER, PGDATABASE, ইত্যাদি সেট করুন।

হ্যাঁ, এটি কিছুটা মুরগি-ও ডিমের সমস্যা, এর মধ্যে যদি ব্যবহারকারী সংযোগ স্থাপন করতে না পারে (বলুন, pg_hba.conf সম্পাদনা করার পরে) আপনি এটি ঠিক করার জন্য pg_hba.conf খুঁজে পাবেন না।

আরেকটি বিকল্প হ'ল পিএস কমান্ডের আউটপুটটি দেখে এবং সেখানে পোস্টমাস্টার ডেটা ডিরেক্টরি ডিরেক্টরি আর্গুমেন্ট -D উপস্থিত রয়েছে কিনা, যেমন

ps aux  | grep 'postgres *-D'

যেহেতু pg_hba.conf ডেটা ডিরেক্টরিতে থাকবে (যদি না আপনি দেবিয়ান / উবুন্টু বা কিছু ডেরাইভেটিভ এবং তাদের প্যাকেজ ব্যবহার না করেন)।

আপনি যদি ডেবিয়ান / উবুন্টু প্যাকেজগুলি থেকে ইনস্টল করা পোস্টগ্র্রেএসকিউএল দ্বারা উবুন্টু সিস্টেমগুলিকে নির্দিষ্ট করে লক্ষ্য করে থাকেন তবে এটি কিছুটা সহজ হয়ে যায়। হ্যান্ড-সংকলিত-উত্স পিজির সাথে আপনাকে কারও কারও কারও মুখোমুখি হওয়ার দরকার নেই যে যে কেউ তার বাড়ির দির জন্য কোনও ডেটাডির চালু করেছিলেন, বা কোনও এন্টারপ্রাইজডিবি পিজি ইন / অপ্ট ইন ইত্যাদি ইনস্টল করতে পারেন আপনি pg_wrapper, দেবিয়ান / উবুন্টু মাল্টিকে জিজ্ঞাসা করতে পারেন -version Pg পরিচালক, যেখানে PostgreSQL pg_wrapper থেকে pg_lsclusters কমান্ড ব্যবহার করছে।

আপনি যদি সংযোগ করতে না পারেন (পিজি চলছে না, বা সংযোগের জন্য আপনাকে pg_hba.conf সম্পাদনা করতে হবে) আপনাকে pg_hba.conf ফাইলগুলির জন্য সিস্টেমটি অনুসন্ধান করতে হবে। ম্যাক এবং লিনাক্সে sudo সন্ধান / -প্রকারের f -name pg_hba.conf এর মতো কিছু করবে। তারপরে একই ডিরেক্টরিতে PG_VERSION ফাইলটি পরীক্ষা করে দেখুন এটি ঠিক পোস্টগ্রিএসকিউএল সংস্করণ আপনার যদি একাধিক থাকে তবে তা সঠিক। (Pg_hba.conf যদি / etc / এ থাকে তবে এটিকে অগ্রাহ্য করুন, পরিবর্তে এটির মূল নাম)। একই পোস্টগ্রাইএসকিউএল সংস্করণের জন্য যদি আপনার একাধিক ডেটা ডিরেক্টরি থাকে তবে আপনাকে ডাটাবেস আকারটি দেখতে হবে, পিএস থেকে চলমান পোস্টগ্রাসের কমান্ড লাইনটি পরীক্ষা করে দেখুন এটি ডেটা ডিরেক্টরি-ডি যুক্তি যেখানে আপনি সম্পাদনা করছেন সেখানে মেলে কিনা matches । https://askubuntu.com প্রশ্নগুলি / 256534/how-do-i-find-the-path-to-pg-hba-conf-from-the-hell/256711


2

আমার সমস্যাটি ছিল আমি কোনও সার্ভার টাইপ করি নি। আমি ভেবেছিলাম এটি প্লেসোল্ডারের কারণে একটি ডিফল্ট তবে যখন আমি লোকালহোস্টটি টাইপ করি তখন এটি কাজ করে।


2

আপনি যদি ক্লাউড 9 এ এই ফাইলটি সনাক্ত করার চেষ্টা করছেন, আপনি এটি করতে পারেন

sudo vim /var/lib/pgsql9/data/pg_hba.conf

প্রেস Iসম্পাদনা / ঢোকানোর জন্য, প্রেস ESC3 বার এবং ধরন :wqফাইলটি সংরক্ষণ এবং অব্যাহতিপ্রাপ্ত হবে


2

আপনি যদি রেলের সাথে এই সমস্যার মুখোমুখি হয়ে থাকেন এবং আপনি যদি জানেন যে আপনি ইতিমধ্যে সঠিক অধিকারের সাথে পাসওয়ার্ড সহ সেই ব্যবহারকারী নামটি তৈরি করেছেন তবে আপনার ডাটাবেস.আইএমএল ফাইলের শেষে আপনাকে কেবল নিম্নলিখিতটি লিখতে হবে।

host: localhost

সামগ্রিক ফাইল নীচের মত দেখতে হবে

development:
  adapter: postgresql
  encoding: unicode
  database: myapp_development
  pool: 5
  username: root
  password: admin
  host: localhost

আপনাকে কোনও pg_hba.confফাইল করার দরকার নেই । শুভ কোডিং


2

কনফিগার পরিবর্তন না করে সহজ সমাধান। (উবুন্টু) ব্যবহারকারী পরিবর্তন করুন, তারপরে ডাটাবেস ক্লাইমে সংযোগ দিন।

sudo -i -u postgres

psql

https://www.digitalocean.com/commune/tutorials/how-to-install-and-use-postgresql-on-ubuntu-18-04 থেকে নেওয়া হয়েছে

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