পোস্টগ্রিজ ব্যবহারকারীর অস্তিত্ব নেই?


92

আমি সবে পোস্টগ্র্রেস ইনস্টল করেছি এবং এটি এবং বিভিন্ন কনফিগারেশনের সাথে 1-2 ঘন্টা ধরে টিঙ্কিং করছি।

আমি পোস্টগ্রিজ-ব্যবহারকারীতে পরিবর্তন করতে অক্ষম হয়ে আটকে আছি

$ su - postgres নিম্নলিখিত ত্রুটি ফল দেয়: su: unknown login: postgres

$ sudo -u postgres psql নিম্নলিখিত ত্রুটি ফল দেয়: sudo: unknown user: postgres

এই প্রচেষ্টাগুলি সাধারণ ব্যবহারকারী হিসাবে করা হয়। এগুলি রুট হিসাবে চেষ্টা করার ঠিক একই ফলাফল রয়েছে। আমি ওএস এক্স-এ হোমব্রিউয়ের মাধ্যমে পোস্টগ্রাগগুলি ইনস্টল করেছি এবং আমি নির্দেশাবলী বহুবার পড়েছি।


আপনি কি কেবল পিএসকিএল চালানোর চেষ্টা করছেন?
danielM

আচ্ছা হ্যাঁ, আমি সঠিক postgresব্যবহারকারী হিসাবে চালাতে চাই ।
ক্রিস্তাহ

কিছু ম্যাক ওএস এক্স স্বাদে, কিছু ইনস্টলেশন পদ্ধতি সহ, আমি মনে করি ব্যবহারকারীটি তার postgres_পরিবর্তে তৈরি হয়েছে। নোট ট্রেলিং আন্ডারস্কোর। এছাড়াও, আপনি কি নিশ্চিত যে আপনি (বা ইনস্টলার) আসলে পোস্টগ্র্যাসকিউএল ইনস্ট্যান্স তৈরি করেছেন এবং ডাটাবেস শুরু করেছেন?
ক্রেগ রিঞ্জার 15'14

4
আমি postgresব্যবহারকারীর স্যুইচ করতে খুব পারিনি । postgresql-serverপ্যাকেজ ইনস্টল করার পরে সমস্যার সমাধান ।
সার্জিও 法轮功 冠状 病 六四 事件

উত্তর:


89

psql: আমার ডিফল্ট ব্যবহারকারীর নাম দিয়ে আমাকে লগ ইন

psql -U postgres: পোস্টগ্রিজ ব্যবহারকারী হিসাবে আমাকে লগ ইন করে

সুডো আমার জন্য প্রয়োজনীয় বলে মনে হচ্ছে না।

আমি আমার ওএস এক্স পোস্টগ্রিজ ডাটাবেসের জন্য পোস্টগ্র্রেস.এপ ব্যবহার করি। এটি ইনস্টলেশন কাজ করছে এবং ডাটাবেস সার্ভারটি সঠিকভাবে চালু হয়েছিল তা নিশ্চিত করার মাথা ব্যথা দূর করে। এটি এখানে দেখুন: http://postgresapp.com

সম্পাদনা করুন: যুক্তিগুলির আমার ব্যবহার সংশোধন করার জন্য @ এরউইন ব্র্যান্ডসেটটারকে Creditণ


8
আমি ব্রিউ ব্যবহার করে ইনস্টল করেছি এবং এটি পোস্টগ্র্রেস বা _পস্টগ্রেস (যতদূর আমি দেখতে পাচ্ছি) নামে কোনও ব্যবহারকারী তৈরি করেনি তাই এটি আমার পক্ষে ব্যর্থ। @ কাংকিউ সলিউশন আপনাকে সমস্যাগুলি ব্যাখ্যা করে এবং চলবে - ধরে নেওয়া আপনার তখন পোস্টগ্রিজ ব্যবহারকারী নেই: psql postgresএবং psql -d postgres
নোটপ্যাচ

21

দ্বারা psql --help, যখন আপনি ডাটাবেসের নামের জন্য বিকল্পগুলি সেট করেন নি ( -dবিকল্প ব্যতীত) এটি আপনার ব্যবহারকারীর নাম হবে, যদি আপনি না করেন -U, ডাটাবেস ব্যবহারকারীর নামটিও আপনার ব্যবহারকারীর নাম হবে, ইত্যাদি etc.

কিন্তু initdb(প্রথম ডাটাবেস তৈরি করতে) কমান্ড দ্বারা এটির কোনও ডাটাবেসের নাম হিসাবে আপনার ব্যবহারকারীর নাম নেই। এটির একটি ডাটাবেস রয়েছে postgresডেটা স্টোরেজ এরিয়ালটি যখন আরম্ভ করা হয় তখন সর্বদা প্রথম ডাটাবেসটি initdb কমান্ড দ্বারা তৈরি করা হয়। এই ডাটাবেসটিকে পোস্টগ্রিস বলা হয়।

সুতরাং আপনার যদি আপনার ব্যবহারকারীর নামকরণের নামে অন্য কোনও ডাটাবেস না থাকে তবে আপনাকে psql -d postgresপিএসএইচএল কমান্ডটি কাজ করতে হবে। এবং এটি -dডিফল্টরূপে বিকল্প দেয় বলে মনে হয়, psql postgresএটিও কাজ করে।

যদি আপনি নিজের ব্যবহারকারীর নামের সাথে অন্য একটি ডাটাবেসের নাম তৈরি করে থাকেন, (এটি দিয়ে করা উচিত createdb) তবে আপনি psqlকেবল আদেশ করতে পারেন । এবং মনে হয় এটি প্রথম ডেটাবেস ব্যবহারকারীর নাম ব্রু দ্বারা আপনার মেশিনের ব্যবহারকারী নাম হিসাবে সেট করে।

psql -d <first database name> -U <first database user name>

বা,

psql -d postgres -U <your machine username>
psql -d postgres

ডিফল্টভাবে কাজ করবে।


17

ওএস এক্স সিস্টেম অ্যাকাউন্টের নামগুলি "_" দিয়ে উপসর্গ করতে পারে; আপনি ওএস এক্স এর কোন সংস্করণ ব্যবহার করছেন তা বলবেন না তবে কমপক্ষে 10.8 এবং 10.9-এ পোস্টপ্রেস ব্যবহারকারী একটি ডিফল্ট ইনস্টলটিতে উপস্থিত রয়েছে। নোট করুন যে আপনি suএই অ্যাকাউন্টে সক্ষম হবেন না (রুট হিসাবে ব্যতীত), কারণ এতে পাসওয়ার্ড নেই। sudo -u _postgresঅন্যদিকে, ভাল কাজ করা উচিত।


ধন্যবাদ! এই উত্তরটি আমি খুঁজছিলাম। কেবলমাত্র "পোস্টগ্রিজ" ব্যবহারকারীর নাম বদলে দেওয়ার জন্য আমি কিছু করতে পারি? এই পোস্টপ্রেস ব্যবহারকারী হিসাবে লগ ইন করার ফলে পিএসকিএল বাড়ে যে "_পস্টগ্রেস" ব্যবহারকারীর উপস্থিতি নেই। আমি অন্য একটি ডাটাবেস থেকে ব্যাকআপ ফাইলের সাথে একটি পরিষ্কার পোস্টগ্রাস উদাহরণ পুনরুদ্ধার করার চেষ্টা করছি
ক্রিস রেইস - সে-ই

4
@ ক্রিসরিজ সিস্টেম অ্যাকাউন্টের নাম পরিবর্তন করা তাদের ব্যবহারকারী সিস্টেমের উপাদানগুলিকে ভেঙে দিতে পারে, তাই আমি এর বিরুদ্ধে দৃ strongly়ভাবে সুপারিশ করব। আপনি "পোস্টগ্র্রেস" নামটি দিয়ে অন্য একটি ব্যবহারকারী অ্যাকাউন্ট তৈরি করতে পারেন এবং এটি ব্যবহার করতে পারেন, তবে যদি আমি সঠিক বুঝতে পারি (যা আমি নাও বুঝতে পারি) তবে আপনি যেটি চালাচ্ছেন তা হ'ল পোস্টগ্র্যাস ডাটাবেসের মধ্যে থাকা ব্যবহারকারী অ্যাকাউন্টটির নাম _পস্টগ্রিস নেই। ডিবি-র মধ্যে থাকা অ্যাকাউন্টের নামগুলি এআইইউআই, সিস্টেম অ্যাকাউন্টের নামগুলি থেকে পৃথক, সুতরাং "_পস্টগ্রেস" সিস্টেম অ্যাকাউন্টের অধীনে কোনও ডিবি ইনস্ট্যান্স চালানো এবং সেই ডিবিটিকে "পোস্টগ্রিস" ডাটাবেস অ্যাকাউন্ট দিয়ে খোলার কোনও সমস্যা হওয়া উচিত নয়।
গর্ডন ডেভিসন


4
psql -U postgres

ডিবি নাম: পোস্টগ্রিস এবং ব্যবহারকারীর নাম: পোস্টগ্র্যাসের ক্ষেত্রে আমার জন্য দুর্দান্ত কাজ করেছে। সুতরাং আপনার sudo লেখার দরকার নেই।

এবং অন্যান্য ডিবি ক্ষেত্রে, আপনি চেষ্টা করতে পারেন

psql -U yourdb postgres

পোস্টগ্র্রেস সহায়তাতে যেমন এটি দেওয়া হয়:

psql [OPTION]... [DBNAME [USERNAME]]

আমার কেস: $ psql -U postgresআউটপুট জেনারেট করে psql: FATAL: role "postgres" does not existতবে psql postgresকাজ করে।
হিমায়িত শিখা

4

আমি ক্রিশার সাথে ঠিক একই ত্রুটিগুলি পেয়েছি su - postgresএবং sudo -u postgres psql। ড্যানিয়েলএম এর উত্তরও ত্রুটি দেয়।

ভুল সেটিংস যখন আউটপুট

প্রিজবাবুর মন্তব্য থেকে উত্তর দিন।

masi$ psql
psql: FATAL:  database "masi" does not exist
masi$ psql -U postgres
psql: FATAL:  role "postgres" does not exist
masi$ psql postgres
psql (9.4.1)
Type "help" for help.

আমি মনে করি এই সমস্যার কিছু অংশ ওএসএক্সে মালিকের সেটিংসে থাকতে পারে

masi$ ls -al /Users/
total 0
drwxr-xr-x   7 root      admin  238 Jul  3 09:50 .
drwxr-xr-x  37 root      wheel 1326 Jul  2 19:02 ..
-rw-r--r--   1 root      wheel    0 Sep 10  2014 .localized
drwxrwxrwt   7 root      wheel  238 Apr  9 19:49 Shared
drwxr-xr-x   2 root      admin   68 Jul  3 09:50 postgres
drwxr-xr-x+ 71 masi      staff 2414 Jul  3 09:50 masi

কিন্তু এমনটি sudo chown -R postgres:staff /Users/postgresদেয় chown: invalid user: ‘postgres:staff’

সংক্ষেপে, এটি সমস্যার সমাধান নয়। ব্যবহারকারী এবং ডাটাবেস তৈরি করতে পোস্টগ্রাইস ইনস্টলেশন দ্বারা প্রদত্ত সরঞ্জামগুলি ব্যবহার করুন।

সঠিক সেটিংস এবং আউটপুট পেতে

ডেটাবেস সিস্টেমে নতুন ব্যবহারকারীর যুক্ত করার জন্য পোস্টগ্রিসের পরে নির্দিষ্ট কমান্ড রয়েছে commands Initdb এর পরে, এখানে বর্ণিত হিসাবে নিম্নলিখিতটি চালান

createuser --pwprompt postgres
createdb -Opostgres -Eutf8 masi_development
psql -U postgres -W masi_development

পাসওয়ার্ড অনুরোধ সব সময় এড়ানোর জন্য, আপনি তিনটি পছন্দ হিসাবে বর্ণনা আছে এখানে


2

আমার জন্য এটি ম্যাকোস পুনরায় ইনস্টল করার জন্য পিএসকিএল সমাধান ছিল

brew install postgres

PostgreSQL সার্ভার শুরু করুন

pg_ctl -D /usr/local/var/postgres start

ডিবি শুরু করুন

initdb /usr/local/var/postgres

যদি এই কমান্ডটি কোনও ত্রুটি rm পুরানো ডাটাবেস ফাইলটি ছুড়ে ফেলে এবং উপরের কমান্ডটি পুনরায় চালায়

rm -r /usr/local/var/postgres

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

createdb postgres_test
psql -W postegres_test

আপনি এই ডিবিতে লগইন হয়ে থাকবেন এবং লগইন করতে এখানে একটি ব্যবহারকারী তৈরি করতে পারবেন


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