স্থানীয় পোস্টগ্রিজ এসকিউএলে সংযুক্ত হতে পারে না


124

আমি আমার স্থানীয় উন্নয়নের পরিবেশকে ছাপিয়েছি।

আমার সমস্ত স্থানীয় রেল অ্যাপ্লিকেশনগুলি এখন ত্রুটি দিচ্ছে:

PGError
could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

আমি জানি না এর কারণ কী?

সমাধান অনুসন্ধান করার সময় আমি সমস্ত বান্ডিল রত্ন, আপডেট হওয়া সিস্টেম রত্ন, আপডেট ম্যাকপোর্টগুলি আপডেট করেছি। আনন্দ নেই।

ওএসএক্স চিতাবাঘ থেকে সিংহকে আপগ্রেড করার সময় অন্যরা এই সমস্যাটি জানিয়েছেন, পোস্টগ্রিসের কোন সংস্করণটি ব্যবহার করা উচিত তা নিয়ে বিভ্রান্তির কারণে (যেমন, ওএসএক্স সংস্করণ বা ম্যাকপোর্টস সংস্করণ)। আমি বেশ কয়েক মাস ধরে সিংহ চালাচ্ছি, সুতরাং এটি এখনই হওয়া উচিত বলে অবাক লাগে।

সমস্যাটি কী তা প্রথম না বুঝে আমি খুব বেশি গন্ডগোল করতে নারাজ। আমি কীভাবে এই পদ্ধতিতে ডিবাগ করতে পারি?

আমার সিস্টেমে PostgreSQL এর কতগুলি সংস্করণ রয়েছে, কোনটি অ্যাক্সেস করা হচ্ছে এবং এটি কোথায় রয়েছে তা আমি কীভাবে নির্ধারণ করতে পারি? যদি ভুল পোস্টগ্র্যাস এসকিউএল ব্যবহার করা হচ্ছে তবে আমি কীভাবে এটি ঠিক করব?

নুব প্রশ্নের জন্য দুঃখিত। আমি এখনও শিখছি কিভাবে এটি কাজ করে! কোন পয়েন্টার জন্য ধন্যবাদ।

সম্পাদনা

নীচের পরামর্শ এবং মন্তব্যের ভিত্তিতে কিছু আপডেট।

আমি চালানোর চেষ্টা করেছি pg_lsclustersযা command not foundত্রুটি ফিরে পেয়েছে।

আমি তখন আমার pg_hba.conf ফাইল স্থানীয় করার চেষ্টা করেছি এবং এই তিনটি নমুনা ফাইল পেয়েছি:

/opt/local/share/postgresql84/pg_hba.conf.sample
/opt/local/var/macports/software/postgresql84/8.4.7_0/opt/local/share/postgresql84/pg_hba.conf.sample
/usr/share/postgresql/pg_hba.conf.sample

সুতরাং আমি ধরে নিই পিএসকিউএল এর 3 সংস্করণ ইনস্টল করা আছে? ম্যাকপোর্টস, ওএসএক্স ডিফল্ট এবং ???

আমি তখন লঞ্চেক্টল স্টার্টআপ স্ক্রিপ্টের জন্য অনুসন্ধান করেছি ps -ef | grep postgresযা ফিরে এসেছিল

0    56     1   0 11:41AM ??         0:00.02 /opt/local/bin/daemondo --label=postgresql84-server --start-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper restart ; --pid=none
  500   372     1   0 11:42AM ??         0:00.17 /opt/local/lib/postgresql84/bin/postgres -D /opt/local/var/db/postgresql84/defaultdb
  500   766   372   0 11:43AM ??         0:00.37 postgres: writer process                                                                                                                                                                                                                                                                                                                   
  500   767   372   0 11:43AM ??         0:00.24 postgres: wal writer process                                                                                                                                                                                                                                                                                                               
  500   768   372   0 11:43AM ??         0:00.16 postgres: autovacuum launcher process                                                                                                                                                                                                                                                                                                      
  500   769   372   0 11:43AM ??         0:00.08 postgres: stats collector process                                                                                                                                                                                                                                                                                                          
  501  4497  1016   0 12:36PM ttys000    0:00.00 grep postgres

আমি পোস্টপ্রেসক্ল্ললএইচ-সার্ভার.আপনার সামগ্রীগুলি http://pastebin.com/Gj5TpP62 এ পোস্ট করেছি ।

আমি চালানোর চেষ্টা করেছি port load postgresql184-serverকিন্তু একটি ত্রুটি পেয়েছি Error: Port postgresql184-server not found

এটি ঠিক করার জন্য আমি এখনও খুব বিভ্রান্ত, এবং কোনও "ডামিদের জন্য" পয়েন্টারকে প্রশংসা করি।

ধন্যবাদ!

EDIT2

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

এই ত্রুটিটি কি ডেমোনডো নিয়ে সমস্যা হতে পারে?


নোট করুন যে যখন আপনার অ্যাপ্লিকেশনটি সংযুক্ত হবে, তখন এটি ইউনিক্স ডোমেন সকেটের পরিবর্তে টিসিপি পোর্টের মাধ্যমে সংযুক্ত হয়। কমপক্ষে লোকালহস্ট থেকে নেটওয়ার্ক সংযোগ গ্রহণ করার জন্য আপনার পোস্টগ্রিজ কনফিগার করতে হবে।
পল টমবলিন

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


যথাযথভাবে। এটি একটি ম্যাক-জিনিস হিসাবে প্রদর্শিত হবে। পোস্টমাস্টারটি চলছে কিনা তা যাচাই করার পরে ওপি -h পতাকা ব্যবহার করতে পারে।
ওয়াইল্ডপ্লাজার

অনুগ্রহ করে pg_lsclustersআপনার pg_hba.confফাইলের আউটপুট পোস্ট করুন।
tscho

উত্তর:


66

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

আপনাকে সকেট ফাইল এবং এর ডিরেক্টরিগুলি /varএবং এর অনুমতিগুলি পরীক্ষা করতে হবে /var/pgsql_socket। আপনার রেলস অ্যাপ্লিকেশন (ওএসএক্স ব্যবহারকারী) এর অবশ্যই এই ডিরেক্টরিগুলিতে এক্স (এক্স) অনুমতি কার্যকর করতে হবে (সর্বাধিক প্রত্যেককে অনুমতি প্রদান করুন) এবং সকেটের সম্পূর্ণ অনুমতি (ক্রিক্স) থাকা উচিত। আপনি ls -lAd <file>এগুলি পরীক্ষা করতে ব্যবহার করতে পারেন এবং যদি তাদের মধ্যে কোনও সিমিলিংক হয় তবে আপনাকে ফাইলটি পরীক্ষা করতে হবে বা লিঙ্ক পয়েন্টগুলি dir করতে হবে।

আপনি নিজের জন্য ডীরের অনুমতিগুলি পরিবর্তন করতে পারেন, তবে সকেটটি পোস্টগ্রিস দ্বারা কনফিগার করা হয়েছে postgresql.conf। এটি একই ডিরেক্টরিতে পাওয়া যাবে pg_hba.conf(আপনাকে কোনটি খুঁজে বের করতে হবে)। অনুমতিগুলি সেট করার পরে আপনাকে পোস্টগ্র্যাসকিএল পুনরায় আরম্ভ করতে হবে।

# postgresql.conf should contain...
unix_socket_directory = '/var/run/postgresql'       # dont worry if yours is different
#unix_socket_group = ''                             # default is fine here
#unix_socket_permissions = 0777                     # check this one and uncomment if necessary.

সম্পাদনা করুন:

আমি গুগলে একটি তাত্ক্ষণিক অনুসন্ধান করেছি যা আপনি এটি সম্পর্কিত কিনা তা সন্ধান করতে পারেন। এটির ফলে findআপনার কনফিগারেশনের কোনও প্রচেষ্টা ব্যর্থ হতে পারে।

http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html


ভুল বার্তা:

Pg_hba.conf- এ ব্যবহারকারী পাওয়া যায় নি

psql: FATAL:  no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off

ব্যবহারকারী ব্যর্থ পাসওয়ার্ড প্রমাণ:

psql: FATAL:  password authentication failed for user "couling"

অনুপস্থিত ইউনিক্স সকেট ফাইল:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

ইউনিক্স সকেট বিদ্যমান, কিন্তু সার্ভার এটি শুনছে না।

psql: could not connect to server: Connection refused
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

ইউনিক্স সকেট ফাইলে খারাপ ফাইল অনুমতি :

psql: could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

1
এই ধারণাগুলিকে @ কোলিং করার জন্য ধন্যবাদ। এটি সঠিক দিক অনুভব করে। তবে আমার সেটআপটি নিয়ে খুব অদ্ভুত কিছু আছে। মনে রাখবেন যে এটি সম্প্রতি পর্যন্ত নিখুঁতভাবে কাজ করে চলেছে। আমি আমার সিস্টেমে তিনটি পোস্টগ্রাইস ডিরেক্টরি দেখেছি, সেগুলিতে কনফ। নমুনা ফাইল (পিজি_এইচবিএ, পিজি_সিডেন্ট, পিজি_সার্ভিস ইত্যাদি) রয়েছে তবে কোনও .conf ফাইল নেই। এই ক্ষেত্রে করা উচিত নয়, সঠিক? এছাড়াও ডিরেক্টরিতে .s.PGSQL.5432 থাকা উচিত। পরিবর্তে আমার কাছে /private/tmp/.s.PGSQL.5432.lock এ একটি ফাইল রয়েছে। PSপ্রসেস পোস্টগ্রিস করে তাই এটি চলছে। বিভ্রান্ত!
অ্যান্ডি হার্ভে

আমি একটি অতিরিক্ত লিঙ্ক যুক্ত করেছি। আমি যতদূর জানি পোস্টগ্র্রেসক্লএলসিএনএফ ছাড়া আপনার সত্যিকারের পোস্টগ্র্যাস্কল থাকতে পারে না (এমনকি এটির নতুন নামকরণ করা হলেও)। এটি খুঁজে পাওয়া আপনার প্রথম কাজ হতে হবে।
ফিলিপ কুলিং

1
এটি আমার ডিরেক্টরিগুলি দিয়ে ট্রল করতে এবং সঠিক ফাইলগুলি খুঁজে পেতে কিছুটা সময় নিয়েছিল, তবে এটি আসলে সমস্যা ছিল। খুব বিস্তারিত উত্তরের জন্য ধন্যবাদ। একবার আমি সঠিক ডিরেক্টরিটি খুঁজে পেয়েছি, আমাকে পোস্টগ্রেসক্লুএলএনএফ-এ সকেট ডিরেক্টরি, ডেটা ডিরেক্টরি, hba_file এবং পরিচয়_ফाइल সেট করা দরকার। ধন্যবাদ!
অ্যান্ডি হার্ভে

1
কিছু লোককে সহায়তা করতে পারে: আমি আমার অ্যাকাউন্টের অধীনে পোস্টগ্রাগগুলি ইনস্টল করতে মদ তৈরি করেছি। আমার ক্ষেত্রে দেখা গেল যে ফোল্ডারটি / var / pgsql_sket / ব্যবহারকারীর _পস্টগ্রেসের মালিকানা ছিল এবং আমার অ্যাকাউন্টে মালিকানা পরিবর্তন (ড্যারেন) এই সমস্যাটি স্থির করেছে। নিশ্চিত না কেন প্রথম স্থানে ব্রিউ এই ফোল্ডারের মালিকানা সঠিকভাবে সেট করে নি ...?
ড্যারেন জেনসেন

ধন্যবাদ কুলিং আমি সংযোগ করতে সক্ষম হয়েছি এবং ইউনিক্স_সকেট_ডাইরেক্টরি সেট আপ করাই সঠিক জিনিস ছিল।
রায়ান বিগ

41

আমার অন্ত্র অনুভূতি হ'ল এটি (আবার) একটি ম্যাক / ওএসএক্স-জিনিস: সামনের প্রান্ত এবং পিছনের প্রান্তটি ইউনিক্স-ডোমেন সকেটের জন্য আলাদা অবস্থান ধরে (যা একটি উপস্থাপক বিন্দু হিসাবে কাজ করে )।

চেকলিস্ট:

  • পোস্টগ্রিস চলছে: ps aux | grep postgres | grep -v grepকৌশলটি করা উচিত
  • সকেটটি কোথায় অবস্থিত: find / -name .s.PGSQL.5432 -ls(সকেটটি / টেম্পে থাকত; আপনি সেখানে সন্ধান শুরু করতে পারেন)
  • এমনকি যদি আপনি (ইউনিক্স-ডোমেন) সকেটটি সনাক্ত করেন তবে ক্লায়েন্টটি আলাদা অবস্থান ব্যবহার করতে পারে। (আপনি যদি ডিস্ট্রিবিউশনগুলি মিশ্রিত করেন, বা আপনার অন্য কোথাও কোনও বিতরণ ইনস্টল করা আছে এবং অন্য কোনও (যেমন উত্স থেকে) ইনস্টলেশন রয়েছে), ক্লায়েন্ট এবং সার্ভারের সাথে বিভিন্ন রেন্ডিজ-ভুসের ঠিকানা ব্যবহার করে এটি ঘটে

যদি পোস্টগ্রিস চলমান থাকে এবং সকেটটি আসলে উপস্থিত থাকে তবে আপনি ব্যবহার করতে পারেন:

  • psql -h /the/directory/where/the/socket/was/found mydbname

(যা ইউনিক্স-ডোমেন সকেটে সংযোগ দেওয়ার চেষ্টা করে)

; আপনার এখন পিএসকিএল প্রম্পট পাওয়া উচিত: চেষ্টা করুন \dএবং তারপরে \qপ্রস্থান করুন। আপনি চেষ্টা করতে পারেন:

  • psql -h localhost mydbname

(যা লোকালহোস্টের সাথে সংযোগ স্থাপনের চেষ্টা করে (127.0.0.1)

অপ্রতুল অনুমোদনের কারণে যদি এই প্রচেষ্টাগুলি ব্যর্থ হয়, আপনি pg_hba.conf (এবং সাইনআপ বা পুনরায় চালু করতে পারেন) এই ক্ষেত্রে: লগগুলিও পরীক্ষা করতে পারেন।

একটি অনুরূপ প্রশ্ন: পোস্টগ্রিস শুরু করা যায় না

দ্রষ্টব্য: আপনি যদি পিএসএইচএল প্রম্পটে পেতে পারেন তবে এই সমস্যার দ্রুত সমাধান হ'ল আপনার পরিবর্তন করা config/database.yml, যুক্ত করুন:

host: localhost

অথবা আপনি যোগ করার চেষ্টা করতে পারেন:

host: /the/directory/where/the/socket/was/found

আমার ক্ষেত্রে, host: /tmp


1
@ উত্তরপ্লেজার আপনার উত্তরের জন্য ধন্যবাদ। এটি আমাকে সঠিক দিকে শুরু করল এবং কুলিংয়ের বিস্তারিত উত্তরটি সমাধান দিয়েছে।
অ্যান্ডি হার্ভে

6
হোস্ট যুক্ত করা হচ্ছে: আমার ডাটাবেসে লোকালহোস্ট.আইএমএল আমার সমস্যাটি স্থির করেছে। ধন্যবাদ :)
অটোমেটিকো

1
আমার / বেসরকারী / .... অদ্ভুততা মধ্যে আছে। আমি এটি ইনস্টল করেছি, তবে এই ল্যাপটপটিতে আগেও সমস্যা ছিল। রহস্যময়। সেই ডাটাবেস.আইএমএল কী ছিল!
pjammer

4
রহস্যময়। আমার ডাটাবেসটিতে "লোকালহোস্ট" যুক্ত করাও কাজ করেছে তবে কেন? আমার আগে ছিল না এবং সবকিছু ঠিকঠাক কাজ করছিল। তবে আমি মনে করি না আমি দেরীতে কিছু যুক্ত করেছি এবং হঠাৎ এটি ইতিমধ্যে এরকম ছিল। > _ <
সূচি

1
আমার জন্য কৌশলটি এখানে সকেট পাথ ছিল - এটি ছিল / রান নয় / ভার / রান - ধন্যবাদ!
কোডেঞ্জা

26

Pg রত্ন ( gem uninstall pg) এর পরে আনইনস্টল করার চেষ্টা করুন এবং তারপরে পুনরায় ইনস্টল করুন - আপনি যদি বান্ডিলার ব্যবহার করেন তবে bundle installঅন্যথায় gem install pg। এছাড়াও, নিশ্চিত করুন যে পাথটি সঠিক সংস্করণটি তুলেছে: সিংহের একটি পোস্টগ্রেসকিএল সংস্করণ রয়েছে (পূর্ববর্তী সংস্করণগুলি নেই) এবং এটি আপনার স্থানীয়ভাবে ইনস্টল হওয়া সংস্করণটির (যেমন ম্যাকপোর্টস, হোমব্রু) আগে হতে পারে।

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


8
বান্ডেল এক্সিকিউট রত্ন প্রিন্টিন পিজি <== এছাড়াও কৌশলটি করবে
বেন ওয়াল্ডিং

আমার কোনও সন্দেহ নেই যে ওপির ত্রুটি যে কোনও সংখ্যক জিনিসের কারণে ঘটতে পারে, তবে এটি আমার জন্য কাজ করা সমাধান।
redhotvengeance

20

সংকলনের সময় সকেট ফাইলের অবস্থানটি রত্নটিতে বেক করা হয়। সুতরাং আপনি আপনার pg রত্ন পুনর্নির্মাণ প্রয়োজন।

gem pristine pg
# or
bundle exec gem pristine pg

এটি নির্দিষ্ট সমস্যা সমাধান করা উচিত।


আমি 9.1x থেকে 9.3x এর পোস্টগ্রিকে আপগ্রেড করার পরে এই প্রশ্নটিতে বর্ণিত সমস্যাটি পাওয়া শুরু করেছি। এই উত্তরটি এটি আমার জন্য স্থির করে (সুতরাং এটি আমার ডাটাবেস.আইএমএলে 'লোকালহোস্ট' যুক্ত করেছে, তবে আমি এই পদ্ধতিটি আরও ভাল পছন্দ করি)।
জোশুয়া ফ্লানাগান

16

আপনি যদি একটি অনুরূপ ত্রুটি পেয়ে থাকেন:

psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

এটি কৌশলটি করতে পারে (এটি আমার জন্য করেছিল):

initdb /usr/local/var/postgres -E utf8

আপনি ওএসএক্স / ব্রিউ ব্যবহার না করে থাকলে নির্দিষ্ট ডিরেক্টরিটি আলাদা হওয়া উচিত।

দ্রষ্টব্য: এটি উপরে প্রদর্শিত সঠিক ত্রুটি বার্তা নয়, তবে এই ত্রুটিটি ত্রুটি বার্তার জন্য প্রথম ফলাফল।


6
আমি সবসময়ই এই সমস্যাটি সর্বদা এবং পরে শেষ করছি, তবে এই সমাধানের সাহায্যে এটি প্রথমবার সমাধান করছি। এছাড়াও, rm -fr /usr/local/var/postgresদৌড়ানোর আগে করতে হয়েছিলinitb
রাফ

1
আমি এটি করার পরে (নিল এবং রাফ উভয়), আমি পেয়েছি "মারাত্মক" ডাটাবেস ত্রুটির উপস্থিতি নেই। তারপরে "রেক ডিবি: তৈরি করুন: সমস্ত" এবং "রেক ডিবি: মাইগ্রেট" চালিয়ে যান এবং শেষ পর্যন্ত সবকিছু আবার কাজ করে।
দেবোরাহ

আমাকেও rm -rf /usr/local/var/postgresতখন করতে হয়েছিল initdb /usr/local/var/postgres -E utf8। তবে নিশ্চিত হয়ে নিন যে এটি করার পরে পোস্টগ্রাগগুলি চলছে না, অন্যথায় ডিরেক্টরিটি প্রায় সঙ্গে সঙ্গেই পুনরায় তৈরি হয়ে যায় ated
জোশ ডব্লিউ লুইস

8

আমার জন্য এই ত্রুটিটি কী সমাধান হয়েছে তা পোস্টগ্র্যাস ডিরেক্টরিতে পোস্টমাস্টার.পিড নামে একটি ফাইল মোছা ছিল। ধাপে ধাপে নির্দেশের জন্য দয়া করে নীচের লিঙ্কটি ব্যবহার করে আমার প্রশ্ন / উত্তর দেখুন। আমার সমস্যা ফাইল অনুমতি সম্পর্কিত ছিল না:

পিএসকিএল: সার্ভারের সাথে সংযোগ করতে পারেনি: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই (ম্যাক ওএস এক্স)

এই প্রশ্নের উত্তর দেওয়া লোকেরা প্রচুর গেমটি বাদ দিয়েছে, তার জন্য ধন্যবাদ! আমি আমার সাধ্যমতো উন্নতি করেছি


যেহেতু এখানে গৃহীত উত্তরটি কোনও ফাইলের অনুমতি সংক্রান্ত নোটটি নোট করে, আপনার পোষ্ট এবং এটি একটি সম্পর্কিত নয় বলে মনে হয়।
অ্যান্ড্রু বারবার

7

আংশিকভাবে ওয়াইল্ডপ্লাসারের উত্তরের ভিত্তিতে আমি সেই ত্রুটি বার্তাকে এইভাবে সমাধান করেছি।

find / -name .s.PGSQL.5432 -ls 2> /dev/null
  => ... /tmp/.s.PGSQL.5432

সুতরাং, আমার সকেট বা যা কিছু আছে, কিন্তু ক্লায়েন্ট এটিকে সন্ধান করে:

/var/run/postgresql/.s.PGSQL.5432

তাই বেশ সহজভাবে একটি প্রতীকী লিঙ্ক করুন /tmp/.s.PGSQL.5432:

sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

আশা করি এটি কারও পক্ষে সহায়তা করবে। দেখে মনে হচ্ছে একধরনের ভুল, কিন্তু আরে, এটা কাজ করে!


1
এটি আমার জন্য কাজ করেছে: sudo ln -s /tmp/.s.PGSQL.5432 /var/pgsql_sket/.s.PGSQL.5432
ardochhigh

থ্যাঙ্কস :) এটি সাহায্য করেছে। তবে সিমলিংক তৈরি করার আগে sudo mkdir /var/run/postgresqlফোল্ডারটি তৈরি করতে ভুলবেন না (আমার ক্ষেত্রে আইডি উপস্থিত ছিল না এবং pg 9.3.X এর জন্য ইনস্টলার দ্বারা তৈরি করা হয়নি)।
কোভপ্যাক

2
ওহ, এই সমাধানটি 'এক-সময়' সমাধান হিসাবে পরিণত হয়েছিল যা প্রতিটি পুনরায় বুট করার পরে আমাকে আবার করতে হয়েছিল। রেলের জন্য আমি অন্যান্য সমাধান খুঁজে পেয়েছি - ডাটাবেস কনফিগারেশন ফাইলটি পরিবর্তন করুন (নীচে উত্তর যুক্ত করা হয়েছে)।
কোভপ্যাক

6

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

প্রথমে আমি পোস্টগ্রিজ সার্ভারটি শুরু করার চেষ্টা করেছি:

postgres -D /usr/local/var/postgres

যা আমি এই ত্রুটিটি দেখেছি

FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.0, which is not compatible with this version 9.3.5.

সুতরাং আমি এই উত্তরটি এসও-তে পেয়েছি - একটি অসম্পূর্ণতা ত্রুটির সাথে সম্পর্কিত: https://serverfault.com

এটিই এটি স্থির করেছে

mv /usr/local/var/postgres /usr/local/var/postgres.old
initdb -D /usr/local/var/postgres

4

কেবলমাত্র নিশ্চিত করেই আমার পিএসকিউএল এবং জ্যাঙ্গোতে একই রকম সমস্যা ছিল,

দেখে মনে হচ্ছে কারণ আমার পিএসকিএল সার্ভারটি সঠিকভাবে বন্ধ হয়নি এবং পোস্টমাস্টার.পিড ফাইলটি এখনও উপস্থিত ছিল (যথাযথ শাটডাউনে স্বয়ংক্রিয়ভাবে মোছা উচিত) আমার পোস্টগ্রিজ ফোল্ডারে।

এটি মুছে ফেলা হয়েছে এবং সব ভাল


2
এটিই আমার সমস্যার সমাধান করেছে। আমার কম্পিউটার হিমশীতল এবং আমাকে একটি শক্ত শাটডাউন করতে হয়েছিল। আমি যখন এটি ব্যাক আপ শুরু করেছি, পোস্টগ্রিজ বলছিল সবকিছু তৈরি থেকে আবার psql: could not connect to server: No such file or directory.সরানো হচ্ছে। postmaster.pid/usr/local/var/postgres
রায়ান এপ্প

1
আমার ক্ষেত্রেও এটি ঘটেছিল। আমার ম্যাকটি কার্নেল আতঙ্কের কারণে পুনরায় শুরু হয়েছিল এবং আমাকে কাজে ফিরে আসার আগে পোস্টমাস্টার.পিড মুছে ফেলতে হয়েছিল।
বেন

4

আমি এই একই ভুল পেয়ে ছিল (এটি সক্রিয় আউট এটির সাথে একটি ত্রুটি ছিল postmaster.pidএখানে কিভাবে আমি postgres আপ এবং আবার (দৌড়ানো পেয়েছিলাম। ফিক্স জন্য রিকার্ডো Burillo কৃতিত্ব ):

$ rm /usr/local/var/postgres/postmaster.pid 
$ pg_resetxlog -f /usr/local/var/postgres

এটি আমার পক্ষে কাজ করেছে, যদিও pg_resetxlogreturned লক ফাইল "পোস্টমাস্টার.পিড" উপস্থিত রয়েছে।
এলিস

3

রেলের সাথে পোস্টগ্র্যাস্কল ব্যবহার করার চেষ্টা করার সময় আমারও একই সমস্যা হয়েছিল। রত্ন pg এর নতুন সংস্করণ ব্যবহার করার জন্য আমার জেমফাইল আপডেট করা আমার জন্য এই সমস্যার সমাধান করে। (রত্ন pg সংস্করণ 0.16.0 কাজ করে)। রত্ন ব্যবহারের ক্ষেত্রে:

gem 'pg', '0.16.0'

তারপরে রত্নটি আপডেট করতে নিম্নলিখিতটি চালান

bundle install --without production
bundle update
bundle install

1
এটি আমার পক্ষেও সমস্যাটি স্থির করেছে। আমি রেল ৪.০ বিটা পেরিয়ে 0.15.1 এ ছিলাম এবং এখন রুবি ২.০.০ ব্যবহার করছি। আমি একবার পিগ 0.16.0 এ আপগ্রেড করলে সমস্যাটি ঠিক হয়ে যায়।
bratsche

4.1.0.beta1
Andreas

3

আমি এই ত্রুটিটি সম্পর্কে অনেকগুলি বিষয় পড়েছি এবং আমার কাছে সমাধানটি ছিল পোস্টগ্রিসটি কেবল এ দিয়ে পুনরায় আরম্ভ করা:

sudo service postgresql restart

যার উল্লেখ এখানে নেই।


3
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

আমি কিছুক্ষণের জন্য সমাধানটি অনুসন্ধান করছি। সুতরাং, এটি আমার জন্য সমস্যাটিও ঠিক করে দিয়েছে (রিবিট ডিবি):

rm -r /usr/local/var/postgres  
initdb /usr/local/var/postgres -E utf8  
pg_ctl -D /usr/local/var/postgres -l logfile start

আমি মিশ্রণ সহ ওএস এক্স 10.11.3 ব্যবহার করি।


2

আমার ম্যাকবুকের ব্যাটারি মারা যাওয়ার পরে আজ আমার সাথে এটি ঘটেছিল। আমি মনে করি এটি অনুচিত বন্ধের কারণে ঘটতে পারে। আমার মতো ক্ষেত্রে আপনাকে যা করতে হবে তা হ'ল পোস্টমাস্টার.পিড মুছবে

ফোল্ডারে নেভিগেট করুন

cd /usr/local/var/postgres

পোস্টমাস্টার.পিড উপস্থিত কিনা তা পরীক্ষা করে দেখুন

ls

পোস্টমাস্টার.পিড সরান

rm postmaster.pid

2

আমার ক্ষেত্রে আগের সমাধানগুলির কোনওটিই ভাল ছিল না। সকেট ব্যবহারের পরিবর্তে, আপনি রেল কনফিগারেশন ফাইলে টিসিপি host+ portনম্বর ব্যবহার করতে পারেন । সুতরাং database.ymlফাইল শুধু এখানে মত দুই লাইন যোগ করুন:

...
adapter: postgresql
encoding: unicode
pool: 5
host: localhost
port: 5432

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

আমি এই ফিক্স ব্যবহার করার আগে:

sudo mkdir /var/run/postgresql
sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

তবে প্রতিটি রিবুট /tmp/.s.PGSQL.5432মুছে ফেলার পরে এবং আমাকে এই আদেশগুলি পুনরাবৃত্তি করতে হয়েছিল। সমাধান কাজ করে, তবে এটি ভয়ঙ্কর, তাই কেবলমাত্র রেল ডাটাবেস কনফিগার ফাইলটি পরিবর্তন করুন :)


2

আমি যখন জ্যাঙ্গোর সাথে পোসগ্রেস স্থাপন করছিলাম তখন এই ত্রুটিটি পেয়েছি, আমি ব্যাক ট্র্যাক ব্যবহার করছি এবং এটি পোস্টগ্রিস ইনস্টলড সহ আসে। আমি ধরে নিই সেটিংসটি ইস্যু। আমি এটিকে সম্পূর্ণরূপে অপসারণ করে ঠিক করেছিলাম তারপর পুনরায় ইনস্টল করে।

sudo apt-get remove postgresql
sudo apt-get purge postgresql

এখন চালান:

apt-get --purge remove postgresql\*

আপনার সিস্টেম থেকে পোস্টগ্রিএসকিউএল সবকিছু সরিয়ে ফেলতে। পোস্টগ্র্রেস প্যাকেজটি কেবল খালি মেটা-প্যাকেজ হিসাবে পরিষ্কার করা যথেষ্ট নয়।

সমস্ত পোস্টগ্রাইএসকিউএল প্যাকেজগুলি সরানো হয়ে গেলে, চালনা করুন:

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres

আপনার এখন সক্ষম হওয়া উচিত:

apt-get install postgresql

1

MacOSX এখানে। হোমব্রিউ ব্যবহার করে আমার পোস্ট-এসএসএল ইনস্টলটি প্রাক-9.1 থেকে 9.1.2 থেকে আপগ্রেড করার পরেও একই সমস্যা ছিল। (যাইহোক, pg_dump দিয়ে আপনার আপগ্রেড করার আগে ডাটাবেসগুলি ডাম্প করতে মনে রাখবেন, 9-পূর্বের পূর্বের ডাটাবেসগুলি বেমানান)) একই সমস্যা, একই ত্রুটি বার্তা।

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

এর পরে, এটি একটি কবজির মতো কাজ করেছিল।


1

হ্যালো ওয়ার্ল্ড :)
আমার জন্য সর্বোত্তম তবে অদ্ভুত উপায়টি ছিল পরবর্তী জিনিসগুলি করা।

1) postgres93.app বা অন্যান্য সংস্করণ ডাউনলোড করুন । এই অ্যাপ্লিকেশনটিকে / অ্যাপ্লিকেশন / ফোল্ডারে যুক্ত করুন।

2) ফাইলটিতে একটি সারি (কমান্ড) যুক্ত করুন .bash_profile(যা আমার হোম ডিরেক্টরিতে রয়েছে):

PATH = / অ্যাপ্লিকেশন / Postgres93.app / সামগ্রী / MacOS / বিন /: AT পাঠান রফতানি করুন
এটি psqlথেকে একটি পাঠ্য Postgres93.app। প্রতিটি সময় কনসোল শুরু হওয়ার পরে সারি (কমান্ড) চলমান।

3) ফোল্ডার Postgres93.appথেকে লঞ্চ /Applications/। এটি একটি স্থানীয় সার্ভার শুরু করে (পোর্টটি "5432" এবং হোস্টটি "লোকালহোস্ট")।

4) এই হেরফেরগুলির পরেও আমি চালানো $ createuser -SRDP user_nameএবং অন্যান্য আদেশগুলি খুশি হয়েছিলাম এবং এটি দেখতে পেরেছি! Postgres93.appআপনার সিস্টেম প্রতিবার শুরু হওয়ার সাথে সাথে চালানোর জন্য তৈরি করা যেতে পারে।

৫) এছাড়াও যদি আপনি গ্রাহকভাবে আপনার ডাটাবেসগুলি দেখতে চান তবে আপনার ইনস্টল করা উচিত PG Commander.app। আপনার পোস্টগ্রিজ ডিবিটিকে সুন্দর ডেটা-টেবিল হিসাবে দেখার ভাল উপায়

অবশ্যই এটি কেবল স্থানীয় সার্ভারের জন্য সহায়ক। এই নির্দেশাবলী যদি এই সমস্যার মুখোমুখি অন্যদের সহায়তা করে তবে আমি খুশি হব।


0

আমাকে জর্জরিত করতে এই সমস্যাটি হয়েছিল, এবং আরও তদন্তের পরে (চলমান rake db:setup), আমি দেখেছি যে রেলগুলি পূর্বে ব্যবহৃত পোস্টগ্রাসের উদাহরণের সাথে সংযোগ স্থাপনের চেষ্টা করছে - এটি একটি যা DATABASE_URL হিসাবে এনভেরি ভেরিয়েবলগুলিতে সঞ্চিত ছিল।

ঠিক করা: unset DATABASE_URL

উত্স: https://stackoverflow.com/a/17420624/2577622


0

আমি এই সমস্যার বেশিরভাগ সমাধানের চেষ্টা করেছি কিন্তু কোনও কাজ করতে পারি নি।

আমি দৌড়েছি lsof -P | grep ':5432' | awk '{print $2}'যা প্রক্রিয়াটির পিআইডি দেখায়। তবে আমি এটি দিয়ে হত্যা করতে পারি না kill -9 <pid>

আমি যখন দৌড়ালাম pkill postgresqlশেষ পর্যন্ত বন্ধ হয়ে গেল। আশাকরি এটা সাহায্য করবে.


0
gem uninstall pg

হোমব্রিউ সহ ওএস এক্সে:

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