5432 পোর্টে পোস্টগ্রেস্কল সংযোগ করতে পারেন না


82

আমি বিটনামি জ্যাঙ্গো স্ট্যাক ইনস্টল করেছি যাতে পোস্টগ্রিজ এসকিউএল 8.4 অন্তর্ভুক্ত রয়েছে।

আমি চালানোর সময় আমি psql -U postgresনিম্নলিখিত ত্রুটিটি পাই:

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"?

পিজি অবশ্যই স্পষ্টভাবে চলমান আছে এবং pg_hba.confফাইলটি এর মতো দেখাচ্ছে:

# TYPE  DATABASE        USER            CIDR-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
# IPv6 local connections:
host    all             all             ::1/128                 md5

কি দেয়?

"প্রুফ" যে পিজি চলছে:

root@assaf-desktop:/home/assaf# ps axf | grep postgres
14338 ?        S      0:00 /opt/djangostack-1.3-0/postgresql/bin/postgres -D /opt/djangostack-1.3-0/postgresql/data -p 5432
14347 ?        Ss     0:00  \_ postgres: writer process                                                                        
14348 ?        Ss     0:00  \_ postgres: wal writer process                                                                    
14349 ?        Ss     0:00  \_ postgres: autovacuum launcher process                                                           
14350 ?        Ss     0:00  \_ postgres: stats collector process                                                               
15139 pts/1    S+     0:00              \_ grep --color=auto postgres
root@assaf-desktop:/home/assaf# netstat -nltp | grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      14338/postgres  
tcp6       0      0 ::1:5432                :::*                    LISTEN      14338/postgres  
root@assaf-desktop:/home/assaf# 

আপনি কী জিজ্ঞাসা করছেন তা আমার কোনও ধারণা নেই এবং আপনি কখনই ইনপুট সরবরাহ করেন নি। এটি হ'ল 100 জন জেনেরিক ত্রুটি পেয়েছে এবং বিভিন্ন জিনিস প্রতিবেদন করছে। এটি সাইটের বিন্যাসের সম্পূর্ণরূপে বাইরে।
ইভান ক্যারল

উত্তর:


87

এই সমস্যাটি postgresকোনও সংস্করণ নম্বর ছাড়াই প্যাকেজ ইনস্টল করার মাধ্যমে আসে । যদিও postgresইনস্টল করা হবে এবং এটি সঠিক সংস্করণ হবে, ক্লাস্টার সেটআপ করার স্ক্রিপ্টটি সঠিকভাবে চলবে না; এটি একটি প্যাকেজিং সমস্যা।

যদি আপনি postgresকোনও স্ক্রিপ্টের সাথে স্বাচ্ছন্দ্য বোধ করেন তবে আপনি এই ক্লাস্টারটি তৈরি করতে এবং postgresচালিয়ে যেতে পারেন। তবে, একটি সহজ উপায় আছে।

প্রথমে পুরাতন পোস্টগ্রাগেস ইনস্টল করুন ge ইস্যুটি বর্তমানে 9.1 এর সাথে রয়েছে সুতরাং আমি ধরে নেব যে আপনি এটি ইনস্টল করেছেন

sudo apt-get remove --purge postgresql-9.1

এখন কেবল পুনরায় ইনস্টল করুন

sudo apt-get install postgresql-9.1

সংস্করণ নম্বর সহ প্যাকেজের নামটি নোট করুন। আছে HTH।


3
এটি পোস্টগ্র্যাস 9.3 নিয়ে আমাকে সাহায্য করেছে।
সেভেনসিট

1
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত, পোস্টগ্রিস 9.4 / উবুন্টু 14.10 এর সাথেও কাজ করে
মাল্টে

1
এই উত্তরটি আমাকে পোস্টগ্রিজ 9.4 এবং 9.3 মিক্সআপে সহায়তা করেছে। কুল।
ইঙ্গো

2
উবুন্টু 16.04 এর জন্য কাজ করেছে এবং 9.5 পোস্টগ্রেস করেছে, তবে প্রথমে প্রতিটি পোস্টগ্রাস সম্পর্কিত প্যাকেজ মুছে ফেলতে হয়েছিল ।
এভার্ট

2
এটি সত্যিই একটি দুর্দান্ত উত্তর! এবং
পোস্টগ্রিজের

23

ত্রুটি বার্তাটি ইউনিক্স-ডোমেন সকেটকে বোঝায়, সুতরাং আপনার netstatঅনুরোধগুলি সেগুলি বাদ না দেওয়ার জন্য আপনাকে টুইঙ্ক করতে হবে। সুতরাং বিকল্পটি ছাড়া এটি ব্যবহার করে দেখুন -t:

netstat -nlp | grep 5432

আমি অনুমান করব যে আপনার ক্লায়েন্টের সাথে সংযোগ দেওয়ার চেষ্টা করার /tmp/.s.PGSQL.5432চেয়ে সার্ভারটি আসলে সকেটে শুনছে /var/run/postgresql/.s.PGSQL.5432। দেবিয়ান বা উবুন্টুতে হ্যান্ড-সংকলিত বা তৃতীয় পক্ষের পোস্টগ্রাইএসকিউএল প্যাকেজগুলি ব্যবহার করার সময় এটি একটি সাধারণ সমস্যা, কারণ ইউনিক্স-ডোমেন সকেট ডিরেক্টরিটির জন্য সোর্স ডিফল্টটি /tmpকিন্তু দেবিয়ান প্যাকেজিং এটিকে পরিবর্তন করে /var/run/postgresql

সম্ভাব্য কর্মক্ষেত্র:

  • আপনার তৃতীয় পক্ষের প্যাকেজ (কল /opt/djangostack-1.3-0/postgresql/bin/psql) সরবরাহিত ক্লায়েন্টগুলি ব্যবহার করুন । সম্ভবত উবুন্টু সরবরাহিত প্যাকেজগুলি সম্পূর্ণরূপে আনইনস্টল করুন (অন্যান্য বিপরীত নির্ভরতার কারণেও এটি কঠিন হতে পারে)।
  • ডেবিয়ান / উবুন্টুর সাথে সামঞ্জস্য রাখতে তৃতীয় পক্ষের প্যাকেজের সকেট ডিরেক্টরিটি ঠিক করুন।
  • -H localhostপরিবর্তে টিসিপি / আইপি এর মাধ্যমে সংযোগ করতে ব্যবহার করুন ।
  • সঠিক ডিরেক্টরিতে নির্দেশ করতে ব্যবহার করুন -h /tmpবা সমমানের PGHOSTসেটিং।
  • তৃতীয় পক্ষের প্যাকেজগুলি ব্যবহার করবেন না।

19

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

সম্পাদনা করুন: postgresql.conf

sudo nano /etc/postgresql/9.3/main/postgresql.conf

সক্ষম বা যুক্ত করুন:

listen_addresses = '*'

ডাটাবেস ইঞ্জিন পুনরায় চালু করুন:

sudo service postgresql restart

এছাড়াও, আপনি ফাইলটি পরীক্ষা করতে পারেন pg_hba.conf

sudo nano /etc/postgresql/9.3/main/pg_hba.conf

এবং আপনার নেটওয়ার্ক বা হোস্ট ঠিকানা যুক্ত করুন:

host    all             all             192.168.1.0/24          md5

শুনুন_ড্রেস = '*' কৌশলটি তৈরি করেছে। এটি কেবল "লোকালহোস্ট" এ শুনছিল এবং 127.0.0.1 এ নয়। ধন্যবাদ!
এমডব্লিউএম

আমার godশ্বর ... অবশেষে এমন কিছু যা কাজ করেছিল - আমি ঠিকানা এবং নিরবচ্ছিন্ন শোনো_ ঠিকানা যুক্ত না করা পর্যন্ত আর কিছুই কাজ করেনি।
আন্তনবি

এক যোগ করুন! এটা আমার জন্য কাজ করে।
অতুল মকওয়ানা

1
এটি উবুন্টু উইন্ডোজ ব্যাশে কাজ করে।
আহমাদালিবালোচ

আমি নিশ্চিত করতে পারি যে এটি উইন্ডোজ 10
রোনাল্ড

18

আপনি psql -U postgres -h localhostইউনিক্স ডোমেন সকেটের পরিবর্তে টিসিপির মাধ্যমে সংযোগটি জোর করতে ব্যবহার করতে পারেন ; আপনার netstatআউটপুট দেখায় যে PostgreSQL সার্ভার লোকালহোস্টের পোর্ট 5432 এ শুনছে।

আপনি খুঁজে বের করতে পারে স্থানীয় ইউনিক্স সকেট একটি ভিন্ন invocavtion ব্যবহার করে PostgrSQL সার্ভার দ্বারা ব্যবহার করা হয় netstat কমান্ড :

netstat -lp --protocol=unix | grep postgres

যে কোনও হারে, পোস্টগ্রেএসকিউএল সার্ভার যে ইন্টারফেসগুলি কনফিগার করা আছে তা শুনে postgresql.conf


17

এই জাতীয় একটি সফটলিঙ্ক তৈরি করুন:

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

1
এটি আমার পক্ষে কাজ করেছে এবং আপনার পোস্টগ্র্যাসকিএল কনফিগারেশনটি পরিবর্তন না করেই সবচেয়ে সহজ সমাধান বলে মনে হচ্ছে। লিঙ্কটি তৈরি করার চেষ্টা করার সময় আপনি নিশ্চিত হন যে আপনি সুপারইউজার।
ব্রেন্ডন

2
ln: প্রতীকী লিঙ্ক '/var/run/postgresql/.s.PGSQL.5432' তৈরি করতে ব্যর্থ হয়েছে: ফাইল বিদ্যমান
P_M

আমি / var / run / ডিরেক্টরিতে "postgresql" ফোল্ডার তৈরি করেছি। এটি ছিল না।
ইকরাম

আশ্চর্যজনকভাবে কাজ করে, এর পিছনে কারণ কী?
তেওমন শিপাহি

7

আমি এটি করে এটি কাজ করে:

dpkg-reconfigure locales

আপনার পছন্দের লোকেলগুলি চয়ন করুন তারপরে চালান

pg_createcluster 9.5 main --start

(9.5 আমার পোস্টগ্র্যাসিকেলের সংস্করণ)

/etc/init.d/postgresql start

এবং তারপর এটি কাজ করে!

sudo su - postgres
psql

হাহ, দুঃখিত, আমি মনে করি আদেশগুলি এটি পরিষ্কার করে দিয়েছে। আমার জন্য, আমি পোস্টগ্রেসকিএল পুনরায় ইনস্টল করার সময় আমি এই সমস্যাটি পূরণ করি, আমি টাইপ করে এটি পুনরায় চালু করার চেষ্টা করি service postgresql restart তবে এটি বলে যে আমার কোনও পোস্টগ্র্যাস্কল ক্লাস্টার নেই। তারপরে আমাকে এইভাবে সাহায্য করার জন্য আমি এই
উপায়টি

ঠিক তিন ঘন্টা গুগল করার পরে আপনি অবশেষে আমার সমস্যাটি ঠিক করলেন। dpkg-reconfigure localesবেশ জঘন্য গুরুত্বপূর্ণ।
ডন মমস

5

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

ডিফল্ট কম্পাইল কনফিগারেশন রাখে unix_socketমধ্যে /tmpকিন্তু প্রকল্প খুলুন, যা পোস্টগ্রি উপর নির্ভর, কারণ এটি জন্য দেখায় কাজ করবে না unix_socket/var/run/postgresql

postgresql.confসকেটের অবস্থান নির্ধারণের জন্য একটি সেটিং রয়েছে । আমার সমস্যাটি হ'ল হয় হয় আমি সেট করতে /tmpএবং psqlকাজ করতে পারি, তবে প্রকল্পটি উন্মুক্ত নয়, বা আমি এটি সেট করতে পারতাম /var/run/postgresqlএবং psqlকাজ করতে পারত না তবে প্রকল্পটি উন্মুক্ত ছিল।

ইস্যুটির একটি রেজোলিউশন হ'ল পিটারের পরামর্শের ভিত্তিতে সকেট সেট করা /var/run/postgresqlএবং তারপরে চালানো psql, যেমন:

psql -h /var/run/postgresql

এটি স্থানীয় অনুমতি ব্যবহার করে স্থানীয়ভাবে চলে। একমাত্র ত্রুটি এটি কেবল "পিএসকিএল" এর চেয়ে বেশি টাইপ করা।

অন্য যে পরামর্শ দিয়েছেন তা হ'ল দুটি জায়গার মধ্যে একটি প্রতীকী লিঙ্ক তৈরি করা। এটিও কাজ করেছে, তবে, পুনরায় বুট করার পরে লিঙ্কটি অদৃশ্য হয়ে গেল। কেবলমাত্র -h যুক্তিটি ব্যবহার করা আরও সহজ, তবে আমি পোস্টগ্র্রেএসকিউএল স্ক্রিপ্টের মধ্যে থেকে প্রতীকী লিঙ্কটি তৈরি করেছি /etc/init.d। আমি "শুরু" বিভাগে প্রতীকী লিঙ্ক তৈরি কমান্ডটি রেখেছি। অবশ্যই, যখন আমি একটি স্টপ জারি করি এবং কমান্ডটি শুরু বা পুনরায় চালু করি, এটি একটি বিদ্যমান প্রতীকী লিঙ্কটি পুনরায় তৈরি করার চেষ্টা করবে তবে সতর্কতা বার্তা ব্যতীত, এতে সম্ভবত কোনও ক্ষতি নেই।

আমার ক্ষেত্রে, পরিবর্তে:

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

আমার আছে

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

এবং স্পষ্টভাবে করতে unix_socket সেট করেছেন /var/run/postgresql/.s.PGSQL.5432মধ্যে postgresql.conf


3

সমাধান:

এটা কর

export LC_ALL="en_US.UTF-8"

এবং এই. ( 9.3 হ'ল আমার বর্তমান পোস্টগ্রিজ এসকিউএল সংস্করণ your আপনার সংস্করণটি লিখুন!)

sudo pg_createcluster 9.3 main --start

ওহো, এটিই ছিল আমার সমস্যা সমাধান করার জন্য, ধন্যবাদ।
ব্যবহারকারী3687723

3

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

পদক্ষেপ 1: চলমান pg_lsclustersআপনার ডিভাইসে চলমান সমস্ত পোস্টগ্রাস্টার ক্লাস্টার তালিকাবদ্ধ করবে

উদাহরণ:

Ver Cluster Port Status Owner    Data directory               Log file
9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

সম্ভবত স্থিতি আপনার ক্ষেত্রে এবং পোস্টগ্রিজ পরিষেবাতে নীচে নেমে আসবে

পদক্ষেপ 2: pg_ctlcluster পুনরায় আরম্ভ করুন

#format is pg_ctlcluster <version> <cluster> <action>
sudo pg_ctlcluster 9.6 main start

#restart postgres
sudo service postgres restart

পদক্ষেপ 3: দ্বিতীয় পদক্ষেপ ব্যর্থ হয়েছে এবং ত্রুটি ছুঁড়েছে

যদি এই প্রক্রিয়াটি সফল না হয় তবে এটি ত্রুটি ছুঁড়ে দেবে। আপনি ত্রুটি লগ অন দেখতে পারেন/var/log/postgresql/postgresql-9.6-main.log

আমার ত্রুটিটি ছিল:

FATAL: could not access private key file "/etc/ssl/private/ssl-cert-snakeoil.key": Permission denied
Try adding `postgres` user to the group `ssl-cert`

পদক্ষেপ 4: পোস্টগ্রাগের মালিকানা পরীক্ষা করুন

নিশ্চিত করুন যে postgresএটির মালিক/var/lib/postgresql/version_no/main

যদি না হয়, চালান

sudo chown postgres -R /var/lib/postgresql/9.6/main/

পদক্ষেপ 5: পোস্টগ্রিজ ব্যবহারকারী এসএসএল-সার্ট ব্যবহারকারী গোষ্ঠীর অন্তর্ভুক্ত Check

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

#set user to group back with
sudo gpasswd -a postgres ssl-cert

# Fix ownership and mode
sudo chown root:ssl-cert  /etc/ssl/private/ssl-cert-snakeoil.key
sudo chmod 740 /etc/ssl/private/ssl-cert-snakeoil.key

# now postgresql starts! (and install command doesn't fail anymore)
sudo service postgres restart

2

আমার ক্ষেত্রে এটি সম্পাদনা করার সময় আমি তৈরি টাইপোর কারণে হয়েছিল /etc/postgresql/9.5/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

তবে MD5ছোট হাতের অক্ষর ছিল md5:

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

1
এটি এই উত্তরটি আমার জন্য এটি স্থির করে দিয়েছে :) আমি এর আগে আমার trustedপরিবর্তে আমার পরিবর্তন করেছিলাম trustএবং পরিষেবাটি আরম্ভ করি নি, এবং পরের দিনই এটি ভেঙে গেছে যখন আমি ইতিমধ্যে যা
বদলেছিলাম

2

আমি পোস্টগ্র্রেস আনইনস্টল করা স্বতঃস্ফূর্ত মনে করি। এটি আমার সমস্যা সমাধানে সহায়তা করে:

  1. পোস্টগ্রিজ সার্ভারটি শুরু করুন:

    sudo systemctl start postgresql
    
  2. নিশ্চিত হয়ে নিন যে সার্ভারটি বুটে শুরু হচ্ছে:

    sudo systemctl enable postgresql
    

এখানে ডিজিটালওশন সাইটে বিস্তারিত তথ্য পাওয়া যাবে


2

আমি আমার পোস্টগ্রিজ -9.5 সার্ভার দিয়ে এই সমস্যাটি সমাধান করতে ব্যর্থ হয়েছি। 3 দিন শূন্য অগ্রগতির পরে এটি এবং অন্যান্য সাইটগুলিতে স্থির প্রতিটি অনুমোদনের চেষ্টা করার পরে আমি সার্ভারটি পুনরায় ইনস্টল করার সিদ্ধান্ত নিয়েছি এবং 5 দিনের মূল্য হারিয়ে ফেলব। কিন্তু, আমি নতুন দৃষ্টান্তে সমস্যাটির প্রতিলিপি করেছি। আপনি যে বিপর্যয়কর পদ্ধতিটি আমি করেছিলেন তা গ্রহণের আগে এটি কীভাবে এটি ঠিক করতে হয় তার কিছু দৃষ্টিকোণ সরবরাহ করতে পারে।

প্রথমে, পোস্টগ্রিসক্ল্লএলএনএফ-তে সমস্ত লগিং সেটিংস অক্ষম করুন। এটি বিভাগ:

# ERROR REPORTING AND LOGGING

বিভাগে সবকিছু মন্তব্য। তারপরে পরিষেবাটি পুনরায় চালু করুন।

পুনঃসূচনা করার সময়, ব্যবহার করুন /etc/init.d/postgresql start বা restart আমি পুনরায় আরম্ভ করার সময় সুপারভাইজার মোডে থাকা সহায়ক বলে মনে করেছি। আমি কেবল এই অপারেশনের জন্য একটি এক্স-উইন্ডো খোলা ছিল। আপনি যে সুপারইউসার মোডটি দিয়ে এটি ইনস্টল করতে পারেন sudo -i

এই সাধারণ কমান্ডটি দিয়ে সার্ভারে পৌঁছানো যাবে কিনা তা যাচাই করুন: psql -l -U postgres

যদি এটি ঠিক না করে, তবে এটি বিবেচনা করুন:

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

একবার আপনি অ্যাক্সেস অর্জন করার পরে, নিয়মিতভাবে ফাইলের # ERROR REPORTING AND LOGGINGবিভাগে প্রতিটি প্রাসঙ্গিক লাইন পরিবর্তন postgresql.confকরুন। পুনরায় চালু করুন এবং পরীক্ষা করুন। আমি দেখতে পেয়েছি যে লগগুলির জন্য ডিফল্ট ফোল্ডারটি ব্যর্থতার কারণ হচ্ছিল। আমি বিশেষভাবে মন্তব্য log_directory। সিস্টেমটি তখন লগগুলিতে ডিফল্ট ফোল্ডারটি ফেলে দেয় /var/log/postgresql


1

সম্ভবত আপনি /var/lib/postgresql/9.3/mainফোল্ডারের অনুমতি পরিবর্তন করেছেন কারণ এটি ঘটতে পারে ।

নীচের কমান্ডটি ব্যবহার করে এটি 700 এ পরিবর্তন করার চেষ্টা করুন:

sudo chmod 700 main

1

আমি যেহেতু ফ্লাস্ক ব্যবহার করছি এটি এই প্রশ্নের সাথে ঠিক সম্পর্কিত নয়, তবে এটি হ'ল সঠিক ত্রুটি এবং ধারণাটি পাওয়ার জন্য এটিই ছিল সবচেয়ে প্রাসঙ্গিক থ্রেড।

আমার সেটআপ: লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেম, ডকার-কমপোজ ডাব্লু / মেকফিল ডাব্লু / ডকফেরফাইল, ফ্লাস্ক, পোস্টগ্র্যাস্কিল (টেবিল সমন্বিত স্কিমা ব্যবহার করে)

পোস্টগ্রিসের সাথে সংযোগ রাখতে, আপনার সংযোগের স্ট্রিংটি এভাবে সেটআপ করুন:

from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql+psycopg2://<user>:<password>@<container_name_in_docker-compose.yml>/<database_name>"

দ্রষ্টব্য: আমি এই থ্রেডে কোনও পদ্ধতি ব্যবহার করে কোনও আইপি (যেমন লোকালহোস্ট, 127.0.0.1) পাইনি। লোকালহোস্টের পরিবর্তে ধারকটির নাম ব্যবহারের ধারণাটি এখান থেকে এসেছে: https://github.com/docker-library/postgres/issues/297

আপনার স্কিমা সেট করুন:

from sqlalchemy import MetaData
db = SQLAlchemy(app, metadata=MetaData(schema="<schema_name>"))

আপনি যখন সেশন সেটআপ করবেন তখন আপনার কার্যগুলির জন্য আপনার অনুসন্ধানের পথটি সেট করুন:

db.session.execute("SET search_path TO <schema_name>")

0

আমার ঠিক একই সমস্যা ছিল পিটার আইসেন্ট্রাট বর্ণিত। netstat -nlp | grep 5432কমান্ডটি ব্যবহার করে , আমি দেখতে পেলাম যে সার্ভারটি সকেটে শুনছে /tmp/.s.PGSQL.5432

এটি ঠিক করতে, কেবল আপনার postgresql.confফাইল সম্পাদনা করুন এবং নিম্নলিখিত লাইনগুলি পরিবর্তন করুন:

listen_addresses = '*'
unix_socket_directories = '/var/run/postgresql'

এখন চালান service postgresql-9.4 restart(আপনার সংস্করণ দিয়ে 9-4 প্রতিস্থাপন করুন), এবং রিমোট সংযোগগুলি এখন কাজ করা উচিত।

এখন স্থানীয় সংযোগগুলির অনুমতি দেওয়ার জন্য, কেবলমাত্র /var/run/postgresqlডিরেক্টরিতে একটি প্রতীকী লিঙ্ক তৈরি করুন ।

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

আপনার pg_hba.confসঠিকভাবে কনফিগার করা হয়েছে তা নিশ্চিত করতে ভুলবেন না।


0

আমার ক্ষেত্রে, আমাকে যা করতে হয়েছিল তা হ'ল:

sudo service postgresql restart

এবং তারপর

sudo -u postgres psql

এটি ঠিক কাজ করেছে। আশা করি এটা সাহায্য করবে. চিয়ার্স :)।



0

আমার একই সমস্যা ছিল (উবুন্টু 15.10 (উইলিতে))। sudo find / -name 'pg_hba.conf' -printবা sudo find / -name 'postgresql.conf' -printখালি পরিণত হয়েছে। এর আগে দেখে মনে হয়েছিল যে পোস্টগ্র্যাস্কিলের একাধিক উদাহরণ ইনস্টল করা আছে।

আপনি ইনস্টল করা, বা নির্ভরতার সমস্যা তালিকা হিসাবে দেখলে আপনার অনুরূপ থাকতে পারে

.../postgresql
.../postgresql-9.x 

ইত্যাদি।

সেক্ষেত্রে আপনাকে অবশ্যই sudo apt-get autoremoveপ্রতিটি প্যাকেজ 1 দ্বারা 1 করতে হবে ।

তারপরে এই চিঠির অনুসরণ করুন এবং আপনি ভাল থাকবেন। বিশেষত যখন কী কী আমদানি করা হয় এবং উত্স তালিকায় FIRST যুক্ত করা হয়

sudo apt-get update && sudo apt-get -y install python-software-properties && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

যদি উইলি ব্যবহার না করে থাকে তবে wilyআপনার রিলিজের সাথে প্রতিস্থাপন করুন, যেমন আউটপুট দিয়েlsb_release -cs

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ wily-pgdg main" >> /etc/apt/sources.list.d/postgresql.list'
sudo apt-get update && sudo apt-get install postgresql-9.3 pgadmin3

এবং তারপরে আপনার ভাল হওয়া উচিত এবং ব্যবহারকারীদের সংযোগ করতে এবং তৈরি করতে সক্ষম হওয়া উচিত।

প্রত্যাশিত আউটপুট:

Creating new cluster 9.3/main ...
config /etc/postgresql/9.3/main
data   /var/lib/postgresql/9.3/main
locale en_US.UTF-8
socket /var/run/postgresql
port   5432

আমার সমাধানের উত্স (ক্রেডিট)


0

একই সমস্যা থাকার সময় আমি অন্যরকম কিছু চেষ্টা করেছি:

পোস্টগ্রেস্কেল ডিমন নিজে হাতে পেয়েছি আমি পেয়েছি:

FATAL:  could not create shared memory segment ...
   To reduce the request size (currently 57237504 bytes), reduce PostgreSQL's
   shared memory usage, perhaps by reducing shared_buffers or max_connections.

সুতরাং আমি যা করেছি তা হ'ল এবং পরিষেবাটির জন্য shared_buffersএবং নিম্নতর সীমা নির্ধারণ max_connectionsকরা ।postgresql.confrestart

এই সমস্যার সমাধান!

সম্পূর্ণ ত্রুটি লগ এখানে:

$ sudo service postgresql start
 * Starting PostgreSQL 9.1 database server                                                                                                                                                               * The PostgreSQL server failed to start. Please check the log output:
2013-06-26 15:05:11 CEST FATAL:  could not create shared memory segment: Invalid argument
2013-06-26 15:05:11 CEST DETAIL:  Failed system call was shmget(key=5432001, size=57237504, 03600).
2013-06-26 15:05:11 CEST HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMMAX.  To reduce the request size (currently 57237504 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
    If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.
    The PostgreSQL documentation contains more information about shared memory configuration.

0

অনেক ক্লান্তিকর চেষ্টার পরেও আমি অন্যান্য পোস্টের ভিত্তিতে সমাধানটি খুঁজে পেয়েছি!

dpkg -l | grep postgres
apt-get --purge remove <package-founded-1> <package-founded-2>
whereis postgres
whereis postgresql
sudo rm -rf <paths-founded>
sudo userdel -f postgres

0

রানের অভ্যন্তরে postgresql ডিরেক্টরি তৈরি করুন এবং তারপরে নিম্নলিখিত কমান্ডটি চালান।

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

0

কেবল / টেম্প ইউনিক্স_সকেট_ডাইরেক্টরিগুলি যুক্ত করুন

postgresql.conf

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