প্রথমবারের জন্য কীভাবে পোস্টগ্র্যাস্কল কনফিগার করবেন?


197

আমি সবেমাত্র পোস্টগ্র্যাস্কল ইনস্টল করেছি এবং আমি ইনস্টলেশনের সময় পাসওয়ার্ড এক্স নির্দিষ্ট করেছি। আমি যখন createdbকোনও পাসওয়ার্ড নির্দিষ্ট করার চেষ্টা করি এবং বার্তাটি পাই:

তৈরি করা হয়েছে: ডাটাবেস পোস্টগ্রিজের সাথে সংযোগ করতে পারেনি: FATAL: ব্যবহারকারীর জন্য পাসওয়ার্ড প্রমাণীকরণ ব্যর্থ হয়েছে

একই জন্য createuser

আমি কিভাবে শুরু করব? আমি কি নিজেকে ডাটাবেসে একজন ব্যবহারকারী হিসাবে যুক্ত করতে পারি?



4
এটি এক বছরের পরে জিজ্ঞাসা করা এই প্রশ্নটির মতোই। তবে, আমি বিশ্বাস করি এটির একটি বিপজ্জনক প্রাথমিক উত্তর রয়েছে। আপনার ব্যবহারকারীর সেট আপ করা উচিত নয়postgres । এটি SUপোস্টগ্রাইএসকিউএল এর, এবং এটি আপনাকে এর বিরুদ্ধে লগইন-আক্রমণ করার জন্য উন্মুক্ত করে। অন্য একটি সুপার-ব্যবহারকারীর তৈরি করুন এবং postgresইউনিক্স প্রশাসকদের জন্য রুটযুক্ত লক সংরক্ষণ করুন ।
ইভান ক্যারল

উত্তর:


328

অন্য উত্তরগুলি আমার কাছে সম্পূর্ণ সন্তুষ্ট ছিল না। জুবুন্টু 12.04.1 এলটিএস-এ পোস্টগ্র্যাসক্লোল -9.1 এর জন্য কী কাজ করেছে তা এখানে।

  1. ব্যবহারকারীর পোস্টগ্রিসের সাথে ডিফল্ট ডাটাবেসের সাথে সংযুক্ত করুন:

    sudo -u PSGl টেমপ্লেট 1 পোস্ট করে

  2. ব্যবহারকারীর পোস্টগ্রিসের জন্য পাসওয়ার্ড সেট করুন, তারপরে পিএসকিএল (সিটিআরএল-ডি) থেকে প্রস্থান করুন:

    ALTER USER এনক্রিপ্ট করা পাসওয়ার্ড 'xxxxxxx' দিয়ে পোস্টগ্রাগ করে;

  3. pg_hba.confফাইলটি সম্পাদনা করুন:

    sudo vim /etc/postgresql/9.1/main/pg_hba.conf

    এবং পোস্টগ্রিজ সম্পর্কিত লাইনে "পিয়ার" কে "এমডি 5" এ পরিবর্তন করুন:

    স্থানীয় সব      postgres      পিয়ার MD5

    আপনি পোস্টগ্রেস্কল এর কোন সংস্করণটি চালাচ্ছেন তা জানতে, নীচের সংস্করণ ফোল্ডারটি সন্ধান করুন /etc/postgresql। এছাড়াও, আপনি ভিআইএম এর পরিবর্তে ন্যানো বা অন্য সম্পাদক ব্যবহার করতে পারেন।

  4. ডাটাবেস পুনরায় আরম্ভ করুন:

    sudo /etc/init.d/postgresql পুনরায় আরম্ভ করুন

    (এটি এখানে কাজ করেছে কিনা তা আপনি এখানে পরীক্ষা করতে পারেন psql -U postgres)।

  5. আপনার মতো একই নামযুক্ত ব্যবহারকারী তৈরি করুন (এটি সন্ধান করতে আপনি টাইপ করতে পারেন whoami):

    sudo creatuser -U postgres -d -e -E -l -P -r -s <my_name>

    বিকল্পগুলি postgresql কে এমন কোনও ব্যবহারকারী তৈরি করতে বলে যা লগইন করতে পারে, ডাটাবেস তৈরি করতে পারে, নতুন ভূমিকা তৈরি করতে পারে, একটি সুপারইউসার এবং এতে একটি এনক্রিপ্ট করা পাসওয়ার্ড থাকবে। সত্যিই গুরুত্বপূর্ণ বেশী -P -E হয়, যাতে আপনি পাসওয়ার্ড এনক্রিপ্ট হবে টাইপ করতে জানতে চাওয়া হয়, এবং তাই -d যে আপনি একটি কি করতে পারেন createdb

    পাসওয়ার্ডগুলি সম্পর্কে সতর্ক থাকুন : এটি আপনাকে প্রথমে দ্বিগুণ নতুন পাসওয়ার্ড (নতুন ব্যবহারকারীর জন্য) জিজ্ঞাসা করবে, পুনরায় পুনরায় জিজ্ঞাসা করবে এবং তারপরে একবার পোস্টগ্রিগ পাসওয়ার্ড (দ্বিতীয় ধাপে উল্লিখিত একটি)।

  6. আবার pg_hba.confফাইলটি সম্পাদনা করুন (উপরের পদক্ষেপ 3 দেখুন) এবং "সমস্ত" অন্যান্য ব্যবহারকারীদের সাথে সম্পর্কিত লাইনে "পিয়ার" কে "এমডি 5" এ পরিবর্তন করুন:

    স্থানীয় সব      সব      পিয়ার MD5

  7. পুনঃসূচনা করুন (4 ধাপে মত), এবং পরীক্ষা করুন যে আপনি ইউ-পোস্ট্রেস ছাড়াই লগইন করতে পারেন:

    psql টেমপ্লেট 1

    মনে রাখবেন যে আপনি যদি নিখুঁত কাজ করেন তবে psqlএটি ব্যর্থ হবে যেহেতু এটি আপনাকে (যেমন whoami) একই নামের একটি ডিফল্ট ডাটাবেসে আপনাকে সংযুক্ত করার চেষ্টা করবে । টেমপ্লেট 1 হ'ল অ্যাডমিন ডাটাবেস যা শুরু থেকেই এখানে।

  8. এখন createdb <dbname>কাজ করা উচিত।


এই পদ্ধতিটি উবুন্টু ১৩.১০ তেও দুর্দান্ত কাজ করেছে। কোনও ব্যবহারকারী তৈরি করার সময় 5 তম ধাপে sudo মনে রাখবেন।
ডেভিড গুহা মধ্যে Haring

2
পাশাপাশি উবুন্টু 14.04
এলটিএসে

2
ঠিক যেমন একটি নোট হিসাবে, লাইনটি pg_hba.confঅবশ্যই প্রথম লাইন হতে হবে, অন্যথায় এটি অন্যান্য নিয়মের কারণে (এফ 21 এ pgsql 9.3.5) উপেক্ষা করতে পারে। এটি নির্ধারণ করতে আমার কিছুটা সময় লেগেছে, যে পোস্টগ্র্রেসকিএল ব্যবহারকারীর জন্য অস্বস্তিকর এবং ইতিমধ্যে মন্তব্য করা-লাইনগুলি পরিবর্তন করা সহজ হবে না।
ছদ্মবেশী

আমি মনে করি এটি পিজি 9.4 এ পরিবর্তিত হয়েছে, যেহেতু আমার কেবলমাত্র local all all peer3 পয়েন্টে ছিল যা আমি এখন বদলেছি md5। ঠিক আছে?
লিও লোপোল্ড হার্টজ 준영

1
দয়া করে উত্তর 2017 আপডেট করুন! পোস্টগ্রিসকিউএল 9.6 এবং ইউবুন্টু 16 এলটিএস ... কোনও সহজ উপায় নেই ??
পিটার ক্রাউস

55

লিনাক্সের অধীনে পোস্টগ্রিসকিউএল সাধারণত postgresশেল (কনসোল বা এসএসএস) থেকে পোস্টগ্রাস সুপারসউসার হিসাবে রুট ব্যবহারকারীকে লগইন করতে দেয় এমন কনফিগার করা হয় ।

$ psql -U postgres

তারপরে আপনি যথারীতি একটি নতুন ডাটাবেস তৈরি করবেন:

CREATE ROLE myuser LOGIN password 'secret';
CREATE DATABASE mydatabase ENCODING 'UTF8' OWNER myuser;

এটি স্পর্শ ছাড়া কাজ করা উচিত pg_hba.conf। আপনি যদি নেটওয়ার্কের মাধ্যমে কিছু জিইআইআই সরঞ্জাম ব্যবহার করে এটি করতে সক্ষম হতে চান - তবে আপনাকে গণ্ডগোলের দরকার হবে pg_hba.conf


আমি উইন্ডোতে কাজ করছি আমি আমার ডিরেক্টরিতে initdb চালিয়েছি এবং কনফিগারেশন ফাইল উপস্থিত রয়েছে। এখন createb কাজ করে তবে আমি যখন পিএসএইচএল পরীক্ষা করি তখন আমি বার্তাটি পেয়েছি সতর্কতা: কনসোল কোড পৃষ্ঠা (437) উইন্ডোজ কোড পৃষ্ঠা থেকে পৃথক (1252) 8-বিট অক্ষর সঠিকভাবে কাজ করতে পারে না। বিশদগুলির জন্য পিএসকিএল রেফারেন্স পৃষ্ঠাটি "উইন্ডোজ ব্যবহারকারীদের জন্য নোটস" দেখুন। এবং কোনও আদেশই কাজ করে না।
রোহিত বঙ্গ

7
psql: FATAL: Peer authentication failed for user "postgres"এমনকি sudo সঙ্গে।
পিটার ক্রাউস

নিখুঁত উত্তর, আমি কনফিগারেশন ফাইলগুলিতে স্পর্শ করতে চাইনি এবং এটি উবার্টু জুড়ে পোস্টগ্র্রেএসকিউএল ১০.১০ তে নির্বিঘ্নে কাজ করেছে। এর পরে আপনার সাথে সংযোগ করতে সক্ষম হওয়া উচিত psql -d mydatatabase -U myuser
রানু

21

এটি আমার সমাধান:

su root
su postgres
psql

4
এটি অনেক ক্ষেত্রে কাজ করবে কারণ অনেক সাইটের pg_hba.conf পোস্টগ্রিস ডিবি ব্যবহারকারীকে পোস্টগ্রিস সিস্টেম অ্যাকাউন্টের (পিয়ার পদ্ধতি) বিরুদ্ধে প্রমাণীকরণ করবে। সফল লগইন, শেষ পর্যন্ত কোনও নির্দিষ্ট সাইটের জন্য pg_hba.conf এর সামগ্রীর উপর নির্ভর করবে।
রিড স্যান্ডবার্গ

1
আমার জন্য কাজ করেছেন। আমি প্রথম লাইনটি প্রতিস্থাপন করেছি sudo bash
eje211

এটি কীভাবে সহায়তা করে তা আমি পাই না, .. আমার বোধ থেকে, এই মূল এবং পোস্টগ্রাগে লগ হয় এবং পিএসএইচএল চালায়। ঠিক কী হচ্ছে? ধন্যবাদ!
ওলেলে

20

আপনি দুটি পদ্ধতি ব্যবহার করতে পারেন। উভয় একটি ব্যবহারকারী এবং একটি ডাটাবেস তৈরি প্রয়োজন ।

  1. ক্রিয়েটর এবং ক্রিয়েটব ব্যবহার করে ,

    $ sudo -u postgres createuser --superuser $USER
    $ createdb mydatabase
    $ psql -d mydatabase
  2. এসকিউএল প্রশাসনের আদেশগুলি ব্যবহার করে, এবং টিসিপিতে একটি পাসওয়ার্ডের সাথে সংযোগ স্থাপন করা

    $ sudo -u postgres psql postgres

    এবং তারপর, পিএসকিএল শেলের মধ্যে in

    CREATE ROLE myuser LOGIN PASSWORD 'mypass';
    CREATE DATABASE mydatabase WITH OWNER = myuser;

    তারপরে আপনি লগইন করতে পারেন,

    $ psql -h localhost -d mydatabase -U myuser -p <port>

    আপনি যদি বন্দরটি জানেন না, আপনি সর্বদা এটি postgresব্যবহার করে ব্যবহারকারী হিসাবে ,

    SHOW port;

    অথবা,

    $ grep "port =" /etc/postgresql/*/main/postgresql.conf

সিডিনোট: postgresব্যবহারকারী

আমি ব্যবহারকারীকে পরিবর্তন না করার পরামর্শ দিচ্ছি postgres

  1. এটি সাধারণত ওএস থেকে লক থাকে। অপারেটিং সিস্টেমে কারও "লগ ইন" করার কথা নেই postgres। হিসাবে প্রমাণীকরণ পেতে আপনার কাছে রুট থাকার কথা postgres
  2. এটি সাধারণত পাসওয়ার্ড সুরক্ষিত থাকে না এবং হোস্ট অপারেটিং সিস্টেমের প্রতিনিধিত্ব করে। এটি একটি ভাল জিনিস । এটি সাধারণত postgresএসকিউএল সার্ভারের পোস্টগ্রাইএসকিউএল সমতুল্য হিসাবে লগ ইন করার জন্য SA, আপনাকে অন্তর্নিহিত ডেটা ফাইলগুলিতে লেখার অ্যাক্সেস থাকতে হবে। এবং, এর অর্থ হ'ল আপনি সাধারণত যেভাবেই তছনছ করে দিতে পারেন।
  3. এই অক্ষম রেখে, আপনি একটি নামী সুপার-ব্যবহারকারীর মাধ্যমে ব্রুট ফোর্স আক্রমণের ঝুঁকি সরিয়ে ফেলেন। সুপারউসারটির নাম গোপন এবং অস্পষ্ট করার সুবিধাগুলি রয়েছে।

প্রথম পদ্ধতিটি ব্যবহার করে ব্যবহারকারী কোনও সুযোগ-সুবিধা ছাড়াই শেষ করে। আমি প্রথম কমান্ডের পরিবর্তে এটি ব্যবহার করে শেষ করেছি:sudo -u postgres createuser -U postgres -d -e -E -l -P -r -s $(whoami)
ফ্যাবিয়েন স্নোওয়ার্ট

@ ফ্যাবিএনসনওয়ার্ট -sব্যবহারকারীগণকে একটি সুপারভাইজার করে তোলে।
ইভান ক্যারল

16

সম্পাদনা: সতর্কতা: দয়া করে ইভান ক্যারল পোস্ট করা উত্তরটি পড়ুন । দেখে মনে হচ্ছে এই সমাধানটি নিরাপদ নয় এবং প্রস্তাবিত নয়।

এটি আমার জন্য স্ট্যান্ডার্ড উবুন্টু 14.04 64 বিট ইনস্টলেশনতে কাজ করেছে।

আমি http://suite.opengeo.org/4.1/dataadmin/pgGettingStarted/firstconnect.html এ পেয়েছি এমন ছোট্ট পরিবর্তনগুলি সহ, সেই নির্দেশাবলী অনুসরণ করেছি

  1. পোস্টগ্রিগ এসকিউএল ইনস্টল করুন (ইতিমধ্যে আপনার মেশিনে না থাকলে):

sudo apt-get install postgresql

  1. পোস্টগ্রিজ ব্যবহারকারী ব্যবহার করে পিএসকিএল চালান

sudo –u postgres psql postgres

  1. পোস্টগ্রিজ ব্যবহারকারীর জন্য একটি নতুন পাসওয়ার্ড সেট করুন:

\password postgres

  1. প্রস্থান করুন পিএসকিএল

\q

  1. /Etc/postgresql/9.3/main/pg_hba.conf সম্পাদনা করুন এবং পরিবর্তন করুন:

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

প্রতি:

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

  1. পোস্টগ্রিগ এসকিউএল পুনরায় চালু করুন:

sudo service postgresql restart

  1. একটি নতুন ডাটাবেস তৈরি করুন

sudo –u postgres createdb mytestdb

  1. পোস্টগ্রিজ ব্যবহারকারীদের সাথে আবার পিএসকিএল চালান:

psql –U postgres –W

  1. বিদ্যমান ডাটাবেসগুলি তালিকাভুক্ত করুন (আপনার নতুন ডাটাবেসটি এখন সেখানে থাকা উচিত):

\l


1
আমি হ্রাস পেয়েছি কারণ আমি মনে করি postgresব্যবহারকারীকে সক্রিয় করা খারাপ ধারণা। stackoverflow.com/a/41604969/124486
ইভান ক্যারল

4
Note: textdb is the database which you are going to explore with 'alex' user 

root@kalilinux:~# sudo su - postgres 
postgres=#  psql   
postgres=#  create database testdb;
postgres=#  create user alex with password 'alex';
postgres=# GRANT ALL PRIVILEGES ON DATABASE testdb TO alex;`enter code here`

3

আপনার সম্ভবত আপনার pg_hba.confফাইল আপডেট করা দরকার । এই ফাইলটি ব্যবহারকারীরা কোন আইপি ঠিকানা থেকে লগ ইন করতে পারে তা নিয়ন্ত্রণ করে। আমি মনে করি যে পোস্টগ্রিজ ব্যবহারকারী ডিফল্টরূপে বেশ লকডাউন।


2
RHEL6.4 এবং 8.4 পোস্টগ্রেসের জন্য ফাইলটি অবস্থিত /var/lib/pgsql/data/pg_hba.conf। পরিবর্তন identকরার জন্য trustজন্য host(এবং localআপনি SSH ব্যবহার করছেন কিনা তা)।
ডেভিডজি

3

আপনি যদি আমার মতো ম্যাকোস চালাচ্ছেন তবে আপনার পোস্টগ্রিজ ব্যবহারকারী নাও থাকতে পারে।

চালানোর চেষ্টা করার সময় sudo -u postgres psqlআমি ত্রুটি পেয়েছিলামsudo: unknown user: postgres

ভাগ্যক্রমে এখানে এক্সিকিউটেবল রয়েছে যা পোস্টগ্রিজ সরবরাহ করে।

createuser -D /var/postgres/var-10-local --superuser --username=nick
createdb --owner=nick

তারপরে আমি psqlসমস্যা ছাড়াই অ্যাক্সেস করতে সক্ষম হয়েছি ।

psql
psql (10.2)
Type "help" for help.

nick=#

আপনি যদি স্ক্র্যাচ থেকে নতুন পোস্টগ্রাসের উদাহরণ তৈরি করেন তবে আমি যে পদক্ষেপ নিয়েছি তা এখানে। আমি একটি অ-ডিফল্ট পোর্ট ব্যবহার করেছি যাতে আমি দুটি দৃষ্টান্ত চালাতে পারি।

mkdir /var/postgres/var-10-local
pg_ctl init -D /var/postgres/var-10-local

তারপরে আমি /var/postgres/var-10-local/postgresql.confআমার পছন্দসই পোর্ট, 5433 দিয়ে সম্পাদনা করেছি।

/Applications/Postgres.app/Contents/Versions/10/bin/postgres -D /Users/nick/Library/Application\ Support/Postgres/var-10-local -p 5433

createuser -D /var/postgres/var-10-local --superuser --username=nick --port=5433
createdb --owner=nick --port=5433

সম্পন্ন!


2

ম্যাকোজে, আমি এটিকে কাজ করতে নীচের পদক্ষেপগুলি অনুসরণ করেছি।

ইনস্টলেশনের পরে প্রথমবারের মতো, সিস্টেমটির ব্যবহারকারীর নামটি পান।

$ cd ~
$ pwd
/Users/someuser
$ psql -d postgres -U someuser

এখন আপনি সিস্টেমে লগইন করেছেন এবং আপনি ডিবি তৈরি করতে পারেন।

postgres=# create database mydb;
CREATE DATABASE
postgres=# create user myuser with encrypted password 'pass123';
CREATE ROLE
postgres=# grant all privileges on database mydb to myuser;
GRANT

0

কেবলমাত্র আপনার ইনস্টলেশন ডিরেক্টরিতে ব্রাউজ করুন এবং এই ফাইলটি "pg_env.bat" সম্পাদন করুন, সুতরাং বিন ফোল্ডারে গিয়ে pgAdmin.exe চালিত করুন। এটি অবশ্যই কোনও সন্দেহ নেই!

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