পোস্টগ্রিএসকিউএল সার্ভার ম্যাক ওএস এক্সের স্থিতি কীভাবে চেক করা যায়


101

আমি কীভাবে বলতে পারি যে আমার পোস্টগ্র্যাস্কিল সার্ভার চলছে কিনা?

আমি এই বার্তাটি পাচ্ছি:

[~/dev/working/sw] sudo bundle exec rake db:migrate 
rake aborted!
could not connect to server: Connection refused
    Is the server running on host "localhost" and accepting
    TCP/IP connections on port 5432?

হালনাগাদ:

> which postgres
/usr/local/bin/postgres
> pg_ctl -D /usr/local/bin/postgres -l /usr/local/bin/postgres/server.log start
pg_ctl: could not open PID file "/usr/local/bin/postgres/postmaster.pid": Not a directory

আপডেট 2:

>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory

1
আপনার ম্যাক ওএস / এক্সে একাধিক সংস্করণ পোস্টগ্রেসের সন্ধান করা উচিত। আপনি যদি হোমব্রিউয়ের মাধ্যমে পোস্টগ্রাগগুলি ইনস্টল করেছেন তবে আপনার পথটি ভুলভাবে সেটআপ করার সময় আপনি উপরের ত্রুটিটি পেতে পারেন - আমি ঠিক দুর্ঘটনাক্রমে আমার পথটিকে ফিরিয়ে দিয়েছি এবং পোস্টগ্রিজের সিস্টেম ইনস্টলটি ব্যবহার শুরু করেছি যা আমি পথটি সামঞ্জস্য না করা পর্যন্ত খুব ভাল কাজ করে নি didn't ব্রিবু ইনস্টলটি ব্যবহার করুন
জেমি কুক

উত্তর:


94

চলমান প্রক্রিয়াগুলি চেক করার সহজ উপায়:

ps auxwww | grep postgres

এবং এমন কোনও আদেশের সন্ধান করুন যা দেখতে এরকম কিছু দেখাচ্ছে (আপনার সংস্করণটি 8.3 নাও হতে পারে):

/Library/PostgreSQL/8.3/bin/postgres -D /Library/PostgreSQL/8.3/data

সার্ভারটি শুরু করতে, এই জাতীয় কিছু কার্যকর করুন:

/Library/PostgreSQL/8.3/bin/pg_ctl start -D /Library/PostgreSQL/8.3/data -l postgres.log

ঠিক আছে এবং যদি আমি এর মতো কিছু না পাই তবে আমি কীভাবে সার্ভারটি শুরু করব?
রমি

4
pgrep postgresকাজ করে। বা বাছাই করা থেকে ps auxwww | grep [p]ostgresআটকাতে grep
গ্রেগরি নিসবেট

1
বু, হিস রে: অপব্যবহারের ps | grepপরামর্শ। pgrepসবেমাত্র গ্রহণযোগ্য। pg_ctl statusহয় মহানps auxwww | grep postgresমেলে যাচ্ছে grep postgres, এবং less /var/log/postgres/whatever
চার্লস ডাফি

এটি লক্ষ করা উচিত যে ডাটাবেস ক্লাস্টার ডিরেক্টরিটি কমান্ডের /Library/PostgreSQL/8.3/dataমাধ্যমে ব্যবহারকারী নির্বিচারে তৈরি করে initdb। এখানে 8.3 ডকটি রয়েছে
জিপিএল

58

পোস্টগ্র্রেস চলছে কিনা তা নির্ধারণ করার জন্য আপনি নিম্নলিখিত কমান্ডটি চালাতে পারেন:

$ pg_ctl status

আপনি PGDATAপরিবেশ পরিবর্তনশীল সেট করতে চাইবেন ।

~/.bashrcপোস্টগ্রিজের জন্য আমার ফাইলে যা আছে তা এখানে :

export PGDATA='/usr/local/var/postgres'
export PGHOST=localhost
alias start-pg='pg_ctl -l $PGDATA/server.log start'
alias stop-pg='pg_ctl stop -m fast'
alias show-pg-status='pg_ctl status'
alias restart-pg='pg_ctl reload'

এগুলি কার্যকর করতে, মনে রাখবেন এটির মতো উত্স:

$ . ~/.bashrc

এখন, এটি চেষ্টা করুন এবং আপনার এর মতো কিছু পাওয়া উচিত:

$ show-pg-status
pg_ctl: server is running (PID: 11030)
/usr/local/Cellar/postgresql/9.2.4/bin/postgres

আপনার ত্রুটি বার্তাটি দেওয়া, আমি আপনার ডি.ডি.ডি. কমান্ডটি চালানোর জন্য সামগুডির পরামর্শটি আপনার "সংযোগ অস্বীকার" সমস্যাটি ঠিক করে দেবে bet এটি ঠিক হয়ে গেলে আপনার পোস্টগ্রিস ডিবি সার্ভারের স্থিতি পেতে আমার পরামর্শগুলি চেষ্টা করুন।
l3x

26

আপনি সম্ভবত পোস্টগ্রিজ শুরু করেন নি।

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

নির্দেশাবলী দেখতে, চালান brew info postgres

# Create/Upgrade a Database
If this is your first install, create a database with:
     initdb /usr/local/var/postgres -E utf8

To have launchd start postgresql at login:
   ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents 
Then to load postgresql now:     
   launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
Or, if you don't want/need launchctl, you can just run:
    pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

একবার আপনি এটি চালিয়ে গেলে, এটি এমন কিছু বলা উচিত:

সাফল্য। আপনি এখন ব্যবহার করে ডাটাবেস সার্ভার শুরু করতে পারেন:

postgres -D /usr/local/var/postgres or
pg_ctl -D /usr/local/var/postgres -l logfile start

আপনার যদি এখনও সমস্যা হয় তবে আপনার ফায়ারওয়ালটি দেখুন। আপনি যদি হ্যান্ডসফের মতো ভাল ব্যবহার করেন! এবং এটি ট্র্যাফিক ব্লক করার জন্য কনফিগার করা হয়েছিল, তবে আপনার পৃষ্ঠাটি ডেটাবেস দেখতে পাবে না।


20

PostgreSQL 9.3 হিসাবে, আপনি pg_isreadyPostgreSQL সার্ভারের সংযোগের অবস্থা নির্ধারণ করতে কমান্ডটি ব্যবহার করতে পারেন ।

ডক্স থেকে :

pg_ispara 0 শেলটিতে 0 টি সার্ভার ফিরে আসে যদি সার্ভারটি সাধারণত সংযোগগুলি গ্রহণ করে থাকে, 1 যদি সার্ভার সংযোগগুলি প্রত্যাখ্যান করে (উদাহরণস্বরূপ প্রারম্ভকালীন), 2 যদি সংযোগের প্রয়াসে কোনও প্রতিক্রিয়া না আসে এবং 3 চেষ্টা করে না (উদাহরণস্বরূপ কারণে অবৈধ পরামিতি)।


আপনি 9.3 এর আগে পিএসকিএল এর জন্য কীভাবে একই পরীক্ষা করবেন?
বিআরবিডট

11

এটি আপনার পোস্টগ্র্যাসকিএল সার্ভারটি কোথায় ইনস্টল করা হয়েছে তার উপর নির্ভর করে। আপনি নীচের মতো সার্ভারটি ম্যানুয়ালি শুরু করতে pg_ctl ব্যবহার করেন।

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

@Ramy আপনি প্রতিস্থাপিত বিন জন্য Var পথে।
জেমস অলম্যান

হুম ঠিক আছে. আমি ভেবেছিলাম আমার ইনস্টলটি কোথায় ছিল তা খতিয়ে দেখার দরকার। নতুন আপডেট দেখুন।
রমি

আপনি কিভাবে পোস্টগ্র্যাগ ইনস্টল করলেন? পোস্টগ্রিস ইনস্টল করার পরে আপনি কি ডিআইডিডিবি চালিয়েছেন?
এনভিক

5

pg_ctl statusকমান্ড অন্যান্য উত্তর চেক যে পোস্টমাস্টার প্রক্রিয়া বিদ্যমান এবং যদি তাই হয় রিপোর্ট চলমান যে সুপারিশ করেছে। এর অর্থ এই নয় যে এটি সংযোগ গ্রহণ করতে বা কোয়েরিগুলি কার্যকর করতে প্রস্তুত।

এটি ব্যবহার মত অন্য পদ্ধতি ব্যবহার করাই ভালো psqlএকটি সহজ ক্যোয়ারী চালানোর জন্য যেমন করে প্রস্থান কোড পরীক্ষণ, psql -c 'SELECT 1', বা ব্যবহারের pg_isready সংযোগের স্থিতি চেক করতে


3
psql -c "SELECT 1" -d {dbname} > /dev/null || postgres -D /usr/local/var/postgres >postgres.log 2>&1 &আপনি যদি একযোগে পোস্টগ্রাগেস চেক করতে এবং শুরু করতে চান (অটোমেশন স্ক্রিপ্টগুলির জন্য সহজ)।
কেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.