ক্রিয়েটর: ডেটাবেস পোস্টগ্রিসের সাথে সংযোগ করতে পারেনি: ফ্যাটাল: রোল "টম" বিদ্যমান নেই


92

আমি প্রথমবারের মতো পোস্টগ্র্যাস সেটআপ করার চেষ্টা করছি এবং ডাটাবেসগুলি পড়ার এবং তৈরি করার অনুমতি নিয়ে আমার একটি ব্যবহারকারী তৈরি করা দরকার। তবে, আমি যখন ব্যবহার করি:

createuser username

আমার টার্মিনালে আমি নিম্নলিখিত বার্তাটি পেয়েছি:

creatuser: ডাটাবেস পোস্টগ্রিসের সাথে সংযোগ স্থাপন করতে পারেনি: FATAL: ভূমিকা "টম" বিদ্যমান নেই

টম আমার উবুন্টু ব্যবহারকারী অ্যাকাউন্ট যা আমি এখনই লগ ইন করেছি। আমি "পোস্টগ্রাস" এর ব্যবহারকারীর নাম তৈরি করার চেষ্টা করছি তখন একটি কাজ করি psql -U psql template1যাতে আমি একটি ডেটাবেস তৈরি করতে পারি এবং আমার রেইল অ্যাপ্লিকেশনটির জন্য এটিতে কোনও মালিককে বরাদ্দ করতে পারি।


আপনি কি সত্যিই 'পোস্টগ্রিজ' ব্যবহারকারী তৈরি করার চেষ্টা করছেন? বা আপনার রেলস অ্যাপ্লিকেশনটির জন্য কেবল একজন ব্যবহারকারী? সাধারণত 'পোস্টগ্রাস' ব্যবহারকারী ইতিমধ্যে উপস্থিত থাকে এবং আপনার যা প্রয়োজন তা করার জন্য সমস্যাটি এটির সাথে সংযোগ স্থাপন করছে।
অস্টেরগার্ড

উত্তর:


132

আপনি উবুন্টুর কথা উল্লেখ করেছেন তাই আমি অনুমান করতে যাচ্ছি আপনি অ্যাপের মাধ্যমে উবুন্টু থেকে পোস্টগ্রাইএসকিউএল প্যাকেজ ইনস্টল করেছেন।

যদি তা হয় তবে postgresপোস্টগ্রিসকিউএল ব্যবহারকারী অ্যাকাউন্টটি ইতিমধ্যে বিদ্যমান এবং এটি peerইউনিক্স সকেটের প্রমাণীকরণের মাধ্যমে অ্যাক্সেসযোগ্য হওয়ার জন্য কনফিগার করা হয়েছে pg_hba.conf। আপনি এটি postgresইউনিক্স ব্যবহারকারী হিসাবে কমান্ডগুলি চালনার মাধ্যমে পেতে পারেন , যেমন:

sudo -u postgres createuser owning_user
sudo -u postgres createdb -O owning_user dbname

এটি উবুন্টু পোস্টগ্রিএসকিউএল ডকুমেন্টেশনে যা "উবুন্টু পোস্টগ্রিএসকিউএল" এর জন্য প্রথম গুগল হিট এবং এটি অসংখ্য স্ট্যাক ওভারফ্লো প্রশ্নগুলিতে আচ্ছাদিত।

(আপনি ওএস এবং সংস্করণ যেমন আপনি পোস্টগ্র্রেএসকিউএল কীভাবে ইনস্টল করেছেন ইত্যাদি বিবরণ বাদ দিয়ে আপনি এই প্রশ্নটির উত্তর দেওয়া আরও কঠিন করেছেন)


ওয়েলিং-ইউজার তৈরির পরে, আপনি কীভাবে এই ব্যবহারকারীর সাথে সংযোগ স্থাপন করবেন? আমি যে ডিফল্ট ব্যবহার করছি তার সাথে সংযোগ বোঝাতে চাইছি, sudo -u পোস্টগ্র্রেস পিএসএইচএল পোস্টগ্রিস। একইভাবে কীভাবে নিজস্ব_উজারকে সংযুক্ত করবেন?
জনি

4
তিনটি বিকল্প। (ক) সেই ব্যবহারকারীর জন্য একটি পাসওয়ার্ড সেট করুন এবং সেই ব্যবহারকারীর জন্য প্রমাণ pg_hba.confব্যবহার করতে সম্পাদনা md5করুন (ম্যানুয়ালটি দেখুন); (খ) একই নামে একটি ওএস ব্যবহারকারী তৈরি করুন এবং peerলেখক ব্যবহার চালিয়ে যান ; বা (সি) আরও উন্নত, pg_ident.confআপনার ওএস ব্যবহারকারীকে নতুন ব্যবহারকারীর হিসাবে লগ ইন করার অনুমতি দেওয়ার জন্য একটি ম্যাপিং তৈরি করুন।
ক্রেগ রিঞ্জার

66

নির্দেশাবলী সহ গিট গিস্ট দেখুন

এটি চালান:

 sudo -u postgres psql

বা

psql -U postgres

আপনার টার্মিনালে পোস্টগ্রিজ পেতে

নোট: আপনি যদি কোনও ম্যাকের উপরে থাকেন এবং উপরের দুটি কমান্ডই ব্যর্থ হন তবে নীচে ম্যাক সম্পর্কে বিভাগে যান

postgres=#

চালান

CREATE USER new_username;

দ্রষ্টব্য: আপনি তৈরি করতে চান এমন ব্যবহারকারীর সাথে নতুন ব্যবহারকারী নামটি প্রতিস্থাপন করুন, আপনার ক্ষেত্রে এটি টম হবে।

postgres=# CREATE USER new_username;
CREATE ROLE

যেহেতু আপনি চান যে ব্যবহারকারী কোনও ডিবি তৈরি করতে সক্ষম হবেন, তাই আপনাকে সুপারসুমারের ভূমিকাটি পরিবর্তন করতে হবে

postgres=# ALTER USER new_username SUPERUSER CREATEDB;
ALTER ROLE

নিশ্চিত করার জন্য, সবকিছু সফল ছিল,

postgres=# \du
                         List of roles
 Role name |                   Attributes                   | Member of 
-----------+------------------------------------------------+-----------
new_username     | Superuser, Create DB                           | {}
postgres         | Superuser, Create role, Create DB, Replication | {}
root             | Superuser, Create role, Create DB              | {}

postgres=# 

আপডেট / পরিবর্তন (ম্যাকের জন্য):

আমি সম্প্রতি আমার ম্যাকে অনুরূপ ত্রুটির মুখোমুখি হয়েছি:

psql: FATAL: role "postgres" does not exist

এটি কারণ আমার ইনস্টলেশনটি এমন একটি ডাটাবেস সুপারসারের সাথে সেটআপ করা হয়েছিল যার ভূমিকার নামটি আপনার লগইন (সংক্ষিপ্ত) নামের মতো।

তবে কিছু লিনাক্স স্ক্রিপ্টগুলি ধরে নিয়েছে যে সুপারইউসারটির চিরাচরিত ভূমিকাটির নাম রয়েছে postgres

আমি কীভাবে এটি সমাধান করেছি?

আপনি যদি homebrewরান দিয়ে ইনস্টল করেন :

/usr/local/opt/postgres/bin/createuser -s postgres

আপনি যদি পোস্টগ্রিজের একটি নির্দিষ্ট সংস্করণ ব্যবহার করেন 10.5তবে বলে চালান:

/usr/local/Cellar/postgresql/10.5/bin/createuser -s postgres

বা:

/usr/local/Cellar/postgresql/10.5/bin/createuser -s new_username

বা:

/usr/local/opt/postgresql@11/bin/createuser -s postgres

যদি আপনি postgres.appম্যাক রানের জন্য ইনস্টল করেন :

/Applications/Postgres.app/Contents/Versions/10.5/bin/createuser -s postgres

PS: আপনার পোস্টগ্রিজ এসকিউএল সংস্করণ দিয়ে 10.5 প্রতিস্থাপন করুন


এটি psql -U postgres
পোস্টগ্রাজে

29
sudo -u postgres createuser -s tom 

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


7

1- ডিফল্ট পোস্টগ্রিএসকিউএল ব্যবহারকারী হিসাবে পোস্ট করুন (পোস্টগ্রিজ)

sudo -u postgres -i

2- পোস্টগ্রিজ ব্যবহারকারী হিসাবে। createuserকমান্ডটি ব্যবহার করে একটি নতুন ডাটাবেস ব্যবহারকারী যুক্ত করুন

[postgres]$ createuser --interactive

3-প্রস্থান

[postgres]$ exit

5

আপনার ত্রুটিটি অফিসিয়াল ডকুমেন্টেশনে পোস্ট করা হয়েছে। আপনি এই নিবন্ধটি পড়তে পারেন ।

আমি নিবন্ধটি থেকে আপনার (এবং URL গুলোকে হাইপারলিঙ্কযুক্ত) অনুলিপি করেছি:

এটি ঘটবে যদি প্রশাসক আপনার জন্য পোস্টগ্রিএসকিউএল ব্যবহারকারী অ্যাকাউন্ট তৈরি না করে। (পোস্টগ্রিসএসকিউএল ব্যবহারকারী অ্যাকাউন্টগুলি অপারেটিং সিস্টেম ব্যবহারকারী অ্যাকাউন্টগুলির থেকে পৃথক)) আপনি যদি প্রশাসক হন তবে অ্যাকাউন্ট তৈরি করতে সহায়তার জন্য অধ্যায় 20 দেখুন । প্রথম ব্যবহারকারী অ্যাকাউন্ট তৈরি করার জন্য আপনাকে অপারেটিং সিস্টেম ব্যবহারকারী হতে হবে যার অধীনে পোস্টগ্র্যাস এসকিউএল ইনস্টল করা হয়েছিল (সাধারণত পোস্টগ্রিজ)। এটি এমনও হতে পারে যে আপনাকে পোস্টগ্র্রেএসকিউএল ব্যবহারকারীর নাম বরাদ্দ করা হয়েছে যা আপনার অপারেটিং সিস্টেমের ব্যবহারকারীর নাম থেকে আলাদা; সেক্ষেত্রে আপনার পোস্টগ্রেএসকিউএল ব্যবহারকারীর নাম উল্লেখ করার জন্য আপনাকে -U সুইচ ব্যবহার করতে হবে বা PGUSER এনভায়রনমেন্ট ভেরিয়েবল সেট করতে হবে

আপনার উদ্দেশ্যে, আপনি এটি করতে পারেন:

1) একটি পোস্টগ্রিজ এসকিউএল ব্যবহারকারী অ্যাকাউন্ট তৈরি করুন:

sudo -u postgres createuser tom -d -P

( -Pএকটি পাসওয়ার্ড সেট করার -dবিকল্প ; আপনার ব্যবহারকারীর নাম 'টম' এর জন্য ডেটাবেস তৈরির অনুমতি দেওয়ার বিকল্প Note নোট করুন যে 'টম' আপনার অপারেটিং সিস্টেমের ব্যবহারকারী নাম That এইভাবে, আপনি ইনগ্রাই করে পোস্টগ্র্রেএসকিউএল কমান্ড কার্যকর করতে পারেন sudo))

2) এখন আপনি কার্যকর করতে createdbএবং অন্যান্য PostgreSQL কমান্ড সক্ষম হতে হবে ।


1

আমার একই সমস্যা ছিল, আমি কেবল এটি করি

sudo su - postgres

পাসওয়ার্ডের জন্য ক্রিয়েটর ওডু-ইউ পোস্টগ্রাডস-ডিআরএসপি # পি ( ওডু বা ব্যবহারকারীর নাম যা আপনি চান সেই পোস্টগ্রিসের অ্যাক্সেস দিন)



0

আপনি যদি প্রমাণীকরণের পদ্ধতিটি (পরিচয়) এবং pg_hba.conf এর সাথে জগাখিচির পরিবর্তন করতে না চান তবে এটি ব্যবহার করুন:

ডিফল্ট ব্যবহারকারী হিসাবে প্রথমে লগইন করুন

 sudo su - posgres

তারপরে পিএসকিএল অ্যাক্সেস করুন এবং আপনি যেভাবে লগ ইন করছেন তার একই নাম দিয়ে একটি ব্যবহারকারী তৈরি করুন

postgres=# CREATE USER userOS WITH PASSWORD 'garbage' CREATEDB;

আপনি এর সাথে সম্পর্কিত ভূমিকার সাথে আপনার ব্যবহারকারীকে যাচাই করতে পারবেন

postgres=#  \du

এটি আপনার আফ্রিকাটি তৈরি করতে এবং এটি দিয়ে যাচাই করতে পারবেন er

psql -d dbName
\l
\q

-4

আপনার প্রথমে initdb চালানো দরকার। এটি ডাটাবেস ক্লাস্টার এবং প্রাথমিক সেটআপ তৈরি করবে

দেখুন প্রথমবারের কিভাবে কনফিগার PostgreSQL কিভাবে? এবং http://www.postgresql.org/docs/8.4/static/app-initdb.html


4
এটি সম্পূর্ণ ভুল। যদি ব্যবহারকারী না চালায় তবে initdbতাদের কাছে ত্রুটি বার্তাটি প্রকাশের জন্য কোনও ডেটাবেস সার্ভার চলমান এবং সংযোগগুলি গ্রহণ করার দরকার নেই। দয়া করে এই বিভ্রান্তিমূলক উত্তরটি সরিয়ে দিন। (বিটিডাব্লু, ভবিষ্যতে, বাসি লিঙ্কগুলি জমা হওয়া এড়াতে দয়া করে / ডক্স / বর্তমান / স্ট্যাটিক / এ লিঙ্ক করুন)
ক্রেগ রিঞ্জার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.