পিজি :: কানেকশনবেড - সার্ভারের সাথে সংযোগ করতে পারেনি: সংযোগ অস্বীকার করেছে


270

প্রতিবার আমি আমার রেলগুলি 4.0 সার্ভার চালানোর সময়, আমি এই আউটপুটটি পাই।

Started GET "/" for 127.0.0.1 at 2013-11-06 23:56:36 -0500

PG::ConnectionBad - could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
:
 activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:825:in `connect'
 activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:542:in `initialize'
 activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:440:in `new_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:450:in `checkout_new_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `acquire_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:356:in `block in checkout'
 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:355:in `checkout'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:265:in `block in connection'
 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:264:in `connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:546:in `retrieve_connection'
 activerecord (4.0.0) lib/active_record/connection_handling.rb:79:in `retrieve_connection'
 activerecord (4.0.0) lib/active_record/connection_handling.rb:53:in `connection'
 activerecord (4.0.0) lib/active_record/migration.rb:792:in `current_version'
 activerecord (4.0.0) lib/active_record/migration.rb:800:in `needs_migration?'
 activerecord (4.0.0) lib/active_record/migration.rb:379:in `check_pending!'
 activerecord (4.0.0) lib/active_record/migration.rb:366:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
 activesupport (4.0.0) lib/active_support/callbacks.rb:373:in `_run__1613334440513032208__call__callbacks'
 activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks'
 actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/reloader.rb:64:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
 better_errors (0.9.0) lib/better_errors/middleware.rb:84:in `protected_app_call'
 better_errors (0.9.0) lib/better_errors/middleware.rb:79:in `better_errors_call'
 better_errors (0.9.0) lib/better_errors/middleware.rb:56:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
 railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app'
 railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged'
 railties (4.0.0) lib/rails/rack/logger.rb:21:in `call'
 quiet_assets (1.0.2) lib/quiet_assets.rb:18:in `call_with_quiet_assets'
 actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
 rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
 rack (1.5.2) lib/rack/runtime.rb:17:in `call'
 activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
 rack (1.5.2) lib/rack/lock.rb:17:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call'
 railties (4.0.0) lib/rails/engine.rb:511:in `call'
 railties (4.0.0) lib/rails/application.rb:97:in `call'
 rack (1.5.2) lib/rack/content_length.rb:14:in `call'
 thin (1.5.1) lib/thin/connection.rb:81:in `block in pre_process'
 thin (1.5.1) lib/thin/connection.rb:79:in `pre_process'
 thin (1.5.1) lib/thin/connection.rb:54:in `process'
 thin (1.5.1) lib/thin/connection.rb:39:in `receive_data'
 eventmachine (1.0.3) lib/eventmachine.rb:187:in `run'
 thin (1.5.1) lib/thin/backends/base.rb:63:in `start'
 thin (1.5.1) lib/thin/server.rb:159:in `start'
 rack (1.5.2) lib/rack/handler/thin.rb:16:in `run'
 rack (1.5.2) lib/rack/server.rb:264:in `start'
 railties (4.0.0) lib/rails/commands/server.rb:84:in `start'
 railties (4.0.0) lib/rails/commands.rb:78:in `block in <top (required)>'
 railties (4.0.0) lib/rails/commands.rb:73:in `<top (required)>'
 bin/rails:4:in `<main>'

আমি মাভারিকস ওএস এক্স ১০.৯ চালাচ্ছি তাই সমস্যাটি কিনা তা আমি জানি না। আমি যা করতে পেরেছি সব চেষ্টা করেছি কিন্তু কিছুই কাজ করছে বলে মনে হচ্ছে না। আমি এখন একাধিকবার পোস্টগ্রিজ এবং পিজি মণি উভয়ই আনইনস্টল ও ইনস্টল করেছি।

এটি আমার ডাটাবেস.আইএমএল ফাইল

development:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_development
  pool: 5
  username: 
  password: 
  template: template0
  host: localhost
  port: 5432

test: &test
  adapter: postgresql
  encoding: unicode
  database: metals-directory_test
  pool: 5
  username: 
  password: 
  template: template0
  host: localhost
  port: 5432

staging:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_production
  pool: 5
  username:
  password:
  template: template0
  host: localhost

production:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_production
  pool: 5
  username:
  password:
  template: template0
  host: localhost

cucumber:
  <<: *test

2
যোগ 'হোস্ট: স্থানীয় হোস্ট' চেষ্টা আপনার database.yml, এই থেকে পেয়েছেন stackoverflow.com/a/10793186/919641
সুরেন্দ্র Bobba

1
@ ট্রাজান আমি এটি ইতিমধ্যে করেছি। আমি প্রথমবার কোনও সমাধানের জন্য গবেষণা শুরু করার পরেও সেই থ্রেডটি ব্যবহার করেছিলাম। আমি আমার ডাটাবেস.আইএমএল ফাইল পোস্ট করেছি। আপনি এটি একবার দেখে নিতে পারেন। সম্ভবত এটি সাহায্য করতে পারে।
fadelakin

আপনার pg_hba.conf দেন
Pronix

2
আপনি যদি এটি ব্যবহার করে থাকেন তবে পোস্টগ্রিজ অ্যাপটি চালু করতে ভুলবেন না।
পবন কাটপল্লী

1
আমাকে মনে রাখার জন্য ধন্যবাদ @ পাভানকাটপল্লি অ্যাপটি চালু করুন! শুভ কল;)
22

উত্তর:


637

এটি বাসি পিআইডি ফাইলের মতো সহজ হতে পারে । এটি নিঃশব্দে ব্যর্থ হতে পারে কারণ আপনার কম্পিউটার শাটডাউন প্রক্রিয়াটি সম্পূর্ণরূপে সম্পূর্ণ করেনি যার অর্থ পোস্টগ্রিজ পিআইডি (প্রক্রিয়া আইডি) ফাইলটি মুছে দেয় না ।

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

  1. এটি স্থির করতে পিআইডি ফাইলটি মুছে ফেলা / নামকরণ করুন। পোস্টগ্রিজ ডেটা ডিরেক্টরি অনুসন্ধান করুন। হোমব্রু ব্যবহার করে ম্যাকওএসে এটি রয়েছে /usr/local/var/postgres/বা /usr/local/var/log/অন্যান্য সিস্টেমে এটি থাকতে পারে /usr/var/postgres/
  2. সমস্যাটি নিশ্চিত হওয়ার জন্য, লগ ফাইলটি দেখুন ( server.log)। শেষ লাইনে আপনি দেখতে পাবেন:

ফ্যাটাল: লক ফাইল "পোস্টমাস্টার.পিড" ইতিমধ্যে উপস্থিত রয়েছে
ইঙ্গিত: অন্য পোস্টমাস্টার (পিআইডি 347) "/ ইউএসআর / লোকাল / ভার / পোস্টগ্রিস" ডেটা ডিরেক্টরিতে চলছে?

  1. যদি তাই, rm postmaster.pid
  2. আপনার সার্ভার পুনরায় চালু করুন। লঞ্চাক্টেল (হোমব্রেইউ সহ) ব্যবহার করে একটি ম্যাকের উপরের কমান্ডগুলি সার্ভারটি পুনরায় চালু করবে।

    launchctl unload homebrew.mxcl.postgresql.plist  
    launchctl load -w homebrew.mxcl.postgresql.plist

    বা ব্রিউ এর নতুন সংস্করণগুলিতে

    brew services restart postgresql

24
# 2 একটি দুর্দান্ত পরামর্শ: "সার্ভার.লগ পরীক্ষা করুন"। আমার ত্রুটি আসলে ইয়োসেমাইট আপগ্রেড সৃষ্টি হয়েছিল, সার্ভার লগ বললঃ FATAL: could not open directory "pg_tblspc": No such file or directory। এই উত্তরটি আমাকে সেই সমস্যার সাথে সহায়তা করেছে stackoverflow.com/questions/25970132/…
পল কাপ্লান

20
আমি কেবল এটিকে উত্সাহিত করেছি কারণ এটি আমার সমস্যার সমাধানের জন্য পৃথিবী শৈলীর যথেষ্ট পরিমাণ দিয়েছে। আমি পিজি ( gem uninstall pg) আনইনস্টল করে পোস্টস্ট্রেস ( brew uninstall postgres) আনইনস্টল করেছিলাম , তারপরে পোস্টগ্রিস ফোল্ডারটি টুকরো টুকরো করলাম যা তাতে একগুচ্ছ বাসি স্টাফের ( rm -rf /usr/local/var/postgres) মধ্যে স্থির ছিল। একটি পুনরায় বুট করার পরে brew install postgres, ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents, launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist, এবং ARCHFLAGS="-arch x86_64" gem install pg। এটিকে কাজ করার আগে আমি আরও কতগুলি সমাধান চেষ্টা করেছি তা আমি জানি না।
আইএএমএনএন

2
পোস্টমাস্টার.ওপটস কি পোস্টমাস্টার.পিড ফাইলের মতো ফাইল?
এআরটিএল

31
নতুন Brew ব্যবহারকারীদের জন্য, # 4 জন্য কমান্ডbrew services restart postgresql
streetlogics

7
আমার জন্য (ম্যাক, হোমব্রু) লগ ফাইলটি ছিল/usr/local/var/log/postgres.log
ডিজ্যাক

44

অনেক অনুসন্ধান এবং বিশ্লেষণের পরে, আমি একটি সমাধান পেয়েছি যদি আপনি উবুন্টু ব্যবহার করে থাকেন তবে আপনার টার্মিনালে এই আদেশটি লিখুন এবং এন্টার টিপুন

sudo service postgresql restart

এটি আপনার পোস্টগ্রিজ এসকিউএল পুনরায় চালু করবে, আমি আশা করি এটি আপনার পক্ষে সহায়ক হবে।


3
আপনাকে 1000 বার ধন্যবাদ। আমি আমার উবুন্টু সংস্করণটি কেবলমাত্র আপগ্রেড করেছি এবং এটি আমার জন্য স্থির।
মৌরিসিও মোরেস

ওএসএক্স ম্যাভেরিক্স সম্পর্কে প্রশ্নটি উত্থাপিত হয়েছে, মাইগ্রেশন বা সার্ভার প্রারম্ভের সময় উদ্বিগ্ন কিছু ঘটলে উবুন্টু ইনস্টলেশনগুলির পক্ষে এই বিভ্রান্তি কার্যকর হয়।
জেরোমে

39

পোস্টগ্র্রেস সঠিকভাবে বন্ধ না হলে এই সমস্যাটি আসে। আমি এখানে তিনটি সহজ পদক্ষেপে এই সমস্যাটি সমাধান করেছি।

ধাপ 1: আপনার পোস্টগ্রিজ ডিরেক্টরিতে যান

ম্যাক ব্যবহারকারীরা এটিকে খুঁজে পাবেন /usr/local/var/postgres, অন্যরা হয়ত এটিকে দেখবে/usr/var/postgres/

পদক্ষেপ 2:.pid এই কমান্ডটি চালিয়ে ফাইল সরান ।

rm postmaster.pid

ধাপ 3: আপনার সার্ভারটি পুনরায় চালু করুন

ম্যাক ব্যবহারকারীরা

brew services restart postgresql

লিনাক্স ব্যবহারকারীরা

sudo service postgresql restart

অবশেষে আপনার অ্যাপ্লিকেশনটি পুনরায় চালু করুন এবং আপনি যেতে ভাল।


33

আমি ক্রিস স্লেডের উত্তর অনুসরণ করে সমস্যার সমাধান করতে পেরেছি, তবে সার্ভারটি পুনরায় চালু করতে আমাকে নিম্নলিখিত কমান্ডগুলি ব্যবহার করতে হয়েছিল:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

যা আমি এখানে পেয়েছি (pjammer এর উত্তর নীচে নীচে)


25

আপনি কি আপনার সিস্টেমে পোস্টগ্র্যাস্কল ইনস্টল করেছেন? যদি তা না হয়, তবে পোস্টগ্রেএসকিএল ইনস্টল করুন । আপনার সিস্টেমে সাফল্যের সাথে পোস্টগ্রেস্কেল সংহত করার পরে আপনি আপনার সিস্টেম টার্মিনালে এর মতো কিছু টাইপ করতে পারেন:

which psql
#=> /usr/bin/psql

এর পরে আপনার পোস্টগ্রেএসকিএলে এইভাবে একটি ব্যবহারকারী এবং ডাটাবেস তৈরি করতে হবে:

sudo su - postgres
psql

তারপরে আপনি আপনার টার্মিনালের মধ্যে নিম্নলিখিতটি দেখতে পাচ্ছেন

postgres=#

সেখানে টাইপ করুন:

CREATE USER yourname WITH PASSWORD 'passwordhere';
CREATE DATABASE metals-directory_production  WITH OWNER yourname;
GRANT ALL PRIVILEGES ON DATABASE metals-directory_production TO yourname;

আপনি এটি করার পরে, আপনার নিজের সংশোধন করা দরকার database.yml। সম্ভবত আপনার মতো কিছু দরকার:

development:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_development
  pool: 5
  username: yourname
  password: passwordhere   ### password you have specified within psql
  host: localhost
  port: 5432               ### you can configure it in file postgresql.conf

এছাড়াও পোস্টগ্রিসক্লিতে আপনার যদি সমস্যা হয় তবে pg_hba.conf পরীক্ষা করা ভাল


1
আমি এটি ইনস্টল করেছি তবে অবস্থানটি / ইউএসআর / লোকাল / বিন / পিএসকিএল-তে রয়েছে এবং আমি যখন সুডো-ইউ পোস্টগ্র্যাগ করি তখন এটি সুডো বলে: অজানা ব্যবহারকারী:
পোস্টগ্রিস

আপনি যদি আপনার অ্যাপ্লিকেশনে pg ব্যবহার করতে চান তবে পিএসএইচএল এর কাজ করা উচিত। টার্মিনাল পিএসএকিএল ধাতু-ডিরেক্টরি_র উন্নতিতে টাইপ করে দেখুন। কোন ফলাফল? যদি তা না হয় তবে পোস্টগ্রাগগুলি পুনরায় ইনস্টল করার চেষ্টা করুন উদাহরণস্বরূপ
মিহাইল ডেভিডেনকভ

আমি যখন পিএসএইচএল ধাতু-ডিরেক্টরি_ডিভেলপমেন্ট চালিয়ে যাই আমি পিএসকিএল পাই: সার্ভারের সাথে সংযোগ স্থাপন করতে পারিনি: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি কি ইউনিক্স ডোমেন সকেটে "/tmp/.s.PGSQL.5432" এ স্থানীয়ভাবে চলছে এবং সংযোগ গ্রহণ করছে? আমি একজন শিক্ষানবিস রেল প্রোগ্রামার এবং এর অর্থ কী তা আমার কোনও ধারণা নেই। আমি পোস্টগ্রাসটি বহুবার পুনরায় ইনস্টল করার চেষ্টা করেছি তবে কোনও ভাগ্য নেই।
fadelakin

23

সমস্যা এই ধরনের সমাধানের জন্য Postgres এবং এর সাথে কাজ করা Postgres উপর Mac OSX, এই সম্ভবত সর্বোত্তম এবং সবচেয়ে সহজ সমাধান যে আমি এতদূর খুঁজে পেয়েছি:

http://postgresapp.com/

কেবল ডাউনলোড করুন, ইনস্টল করুন এবং খুশি হন :)


19
  1. পৃষ্ঠা আনইনস্টল করুন:

    gem uninstall pg
  2. পোস্টগ্র্যাগ আনইনস্টল করুন:

    brew uninstall postgres
  3. নকল পোস্টগ্র্রেস ফোল্ডার যা বাসি স্টাফগুলির একগুচ্ছ এতে দীর্ঘায়িত হতে পারে:

    rm -rf /usr/local/var/postgres
  4. রিবুট (সম্ভবত অপ্রয়োজনীয়)

  5. পিজি পুনরায় ইনস্টল করুন:

    brew install postgres
  6. ক্রিস স্লেডের উত্তরে আমার মন্তব্যটি শক্তভাবে শুরু হয়, এখন আমি ব্রিউ পরিষেবাগুলি ব্যবহার করি যা আমার জীবনকে অনেক উপায়ে সহজ করেছে:

    brew install services
  7. এবং এটি দিয়ে পিজি শুরু করুন:

    brew services start postgresql
  8. রত্নটি পুনরায় ইনস্টল করুন:

    gem install pg

এবং bobsyouruncle।


3
এই পদ্ধতিটি সম্পর্কে সাবধানতা অবলম্বন করুন ... এটি একটি দাহ্য পৃথিবী পদ্ধতির এবং সম্ভবত আপনার বর্তমানে থাকা কোনও স্থানীয় ডিবিএসকে সম্ভবত ধ্বংস করে দেবে। Github.com/copiousfreetime/launchyএকবার দেখুন যেখানে আপনি lunchy stop postgresঅনুসরণ করতে সক্ষম হতে পারেনlunchy start postgres
lacostenycoder

উবুন্টুতে আমি বিশ্বাস করি sudo apt purge postgresqlবা অন্য কোনও postgresqlপাচাজ যথেষ্ট হওয়া উচিত এবং এটি সমস্ত কিছু ধ্বংস করে দেবে।
ফ্যাব্রিজিও বার্টোগলিও

আমি এটি করেছিলাম এবং এখন নিম্নলিখিত ত্রুটিটি পেয়েছি: postgresql_adapter.rb: 709: `" in कनेक्ट ইন রেসকিউ ": FATAL: ডাটাবেস" प्रोजेक्ट 3_ উন্নয়ন "উপস্থিত নেই (অ্যাক্টিভেকর্ড :: নো ডেটাবেস এরির) ror আমার কি করা উচিৎ ? আমি আসলে রুবাইমিনে ডাটাবেস দেখতে পারি।
ফ্রাঙ্কি দোল

13

পরীক্ষা ফাইল postgresql.conf (চালু ubuntuহয় /etc/postgresql/XX/main/postgresql.conf ) এবং লাইন যে খুঁজে বের করুন:

listen_addresses="localhost"

এটিকে পরিবর্তন করার চেষ্টা করুন:

listen_addresses="*"

এটি প্রতিটি আইপি গ্রহণ করবে, এরপরে লাইনটি চেক করবে যা বলে:

port=5432

এবং চেক, তাহলে আপনার database.yml একই বন্দর আমার PostgreSQL-9.2 ব্যবহার ডিফল্টরূপে 5433 পরিবর্তে 5432 ভুলবেন না করতে পুনরায় আরম্ভ postgres সার্ভার,

শুভকামনা!


এটি আমার সমস্যাও ছিল। আমার সন্দেহ হয়েছে যে এটি ঘটেছে কারণ আমি "আপগ্রেড" করার চেষ্টা করার সময় (9.5 ইনস্টল করার সময়) ইতিমধ্যে 9.3 দৌড়েছিলাম। আমি অনুমান করছি এটি বিদ্যমান নমুনা হওয়ার চেষ্টা করেছে এবং বিদ্যমান ইনস্টল / প্রক্রিয়াটি গ্রহণ করার পরিবর্তে কোনও ভিন্ন বন্দরে সমান্তরালে চলার জন্য নিজেকে কনফিগার করতে চাইছিল।
জোয়েল ফুস

12

@ ম্যাগনে বর্ণিত হিসাবে পোস্টগ্র্রেএসকিউএল এর PG::ConnectionBad - could not connect to server: Connection refusedএকটি বড় / গৌণ সংস্করণ আপগ্রেড (উদাহরণস্বরূপ ) 9.5 -> 9.6বা ত্রুটিটি উপস্থাপন করা যেতে পারে 9 -> 10

brew upgrade postgresqlপোস্টগ্র্রেএসকিউএল 9.6 সংস্করণ প্রকাশের পরে চালানোর পরে আমি এই ত্রুটিটি পেয়েছি । সমস্যাটি হ'ল বড় / গৌণ সংস্করণ আপগ্রেডগুলিতে পুরানো তারিখটিকে নতুন সংস্করণে স্থানান্তরিত করতে অতিরিক্ত পদক্ষেপের প্রয়োজন হয়।

এটি কী আপনার সমস্যা কিনা তা যাচাই করবেন

হোমব্রিউয়ের সাথে ইনস্টল হওয়া সর্বশেষতম ফর্মুলা পোস্টগ্র্রেএসকিউএল সংস্করণটি পরীক্ষা করে আপনি এটি সমস্যা কিনা তা পরীক্ষা করতে পারেন ...

$ brew info postgresql

/usr/local/Cellar/postgresql/9.5.4_1 (3,147 files, 35M)
Poured from bottle on 2016-10-14 at 13:33:28
/usr/local/Cellar/postgresql/9.6.1 (3,242 files, 36.4M) *
Poured from bottle on 2017-02-06 at 12:41:00

... এবং তারপরে এটি বর্তমান PG_VERSION এর সাথে তুলনা করে

$ cat /usr/local/var/postgres/PG_VERSION
9.5

যদি PG_VERSION সর্বশেষতম ব্রিফ সূত্রের চেয়ে কম হয় এবং পার্থক্যটি একটি বড় / গৌণ সংস্করণ পরিবর্তন হয়, তবে সম্ভবত এটি আপনার সমস্যা।

কীভাবে ঠিক করবেন (যেমন কীভাবে ডেটা আপগ্রেড করবেন)

নীচের নির্দেশাবলী 9.5 থেকে 9.6 পর্যন্ত আপগ্রেডের জন্য। আপনার নিজের আপগ্রেডের জন্য উপযুক্ত হিসাবে সংস্করণ নম্বরগুলি পরিবর্তন করুন

পদক্ষেপ 1. নিশ্চিত করুন যে PostgreSQL চালু আছে:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
# or, with Homebrew...
$ brew services stop postgresql

পদক্ষেপ 2. একটি নতুন মূল ডাটাবেস করুন:

$ initdb /usr/local/var/postgres9.6 -E utf8

পদক্ষেপ 3. পুরানো এবং নতুন বাইনারি সংস্করণগুলি কি তা পরীক্ষা করুন:

$ ls /usr/local/Cellar/postgresql/
9.5.3   9.5.4   9.6.1

নোট করুন যে এই উদাহরণে আমি 9.5.4 বাইনারি থেকে 9.6.1 বাইনারিতে আপগ্রেড করছি

পদক্ষেপ ৪. পিজি - আপগ্রেড ইউটিলিটিব্যবহার করে নতুন ডেটাবেজে বর্তমান ডেটা মাইগ্রেট করুন

$ pg_upgrade \
  -d /usr/local/var/postgres \
  -D /usr/local/var/postgres9.6 \
  -b /usr/local/Cellar/postgresql/9.5.4/bin/ \
  -B /usr/local/Cellar/postgresql/9.6.1/bin/ \
  -v
  • -d পতাকা বর্তমান তথ্য ডিরেক্টরি নির্দিষ্ট করে
  • -D ফ্ল্যাগটি নতুন ডেটা ডিরেক্টরি তৈরি করতে নির্দিষ্ট করে
  • -b পুরানো বাইনারি নির্দিষ্ট করে
  • -B আমরা বাইনারিগুলিকে আপগ্রেড করছি তা নির্দিষ্ট করে

পদক্ষেপ 5. পুরানো ডেটা ডিরেক্টরিটি বাইরে সরিয়ে দিন

$ mv /usr/local/var/postgres /usr/local/var/postgres9.5

পদক্ষেপ 6. সদ্য নির্মিত ডেটা ডিরেক্টরি যেখানে পোস্টগ্র্রেএসকিউএল এটি প্রত্যাশা করে সেখানে সরান

$ mv /usr/local/var/postgres9.6 /usr/local/var/postgres

পদক্ষেপ 7. আবার PostgreSQL শুরু করুন

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
# or, if you're running a current version of Homebrew
$ brew services start postgresql

পদক্ষেপ ৮. আপনি যদি পেলের জন্য রত্ন মণি ব্যবহার করে থাকেন তবে আপনাকে রত্নটি আনইনস্টল করে এবং পুনরায় ইনস্টল করে পুনরায় কম্পাইল করা উচিত (আপনি যদি পিজি রত্ন ব্যবহার না করেন তবে এই পদক্ষেপটি এড়িয়ে যান)

$ gem uninstall pg
$ gem install pg

পদক্ষেপ 9. (alচ্ছিক) আপনি নিজেকে আশ্বস্ত করার পরে যে সবকিছু ঠিকঠাক চলছে, আপনি নিম্নলিখিত কমান্ডের সাহায্যে কিছুটা ডিস্ক স্পেস ফিরে পেতে পারেন:

brew cleanup postgresql

... এবং যদি আপনি সত্যিই সাহসী বোধ করেন তবে আপনি নিম্নলিখিত কমান্ডের সাহায্যে পুরাতন পোস্টগ্র্যাসএসকিউএল ডেটা ডিরেক্টরি মুছতে পারেন

rm -rf /usr/local/var/postgres9.5/

(এই উত্তরটি একটি চমৎকার ব্লগ পোস্টের উপর ভিত্তি করে https://keita.blog/2016/01/09/homebrew-and-postgresql-9-5/ কিছু সংযোজন সহ)



7

উপরে প্রস্তাবিত হিসাবে, আমি স্রেফ আমার ম্যাকের পোস্টগ্রিস অ্যাপ খুললাম , ওপেন ক্লিক করেছি Psql, psqlউইন্ডোটি বন্ধ করে দিয়েছি, আমার টার্মিনালে আমার রেল সার্ভারটি পুনরায় চালু করেছি এবং এটি আবার কাজ করছে, আর কোনও ত্রুটি নেই।

হাতির উপর বিশ্বাস করুন: http://postgresapp.com/


6

ওক্স মুভিজে আমার ম্যাক আপডেট করার পরেও আমি একই সমস্যা পেয়েছি।

আমি এই সমাধানটি পেয়েছি:

আপনার টার্মিনালে প্রথমে বেলো কমান্ড লাইনটি ব্যবহার করে দেখুন:

brew services restart postgresql

যদি কিছুই পরিবর্তন না হয়:

ps aux | grep postgres

এখনও যদি কিছু পরিবর্তন হয় না:

ls -ls | grep post

এটি ঠিক করার জন্য সর্বশেষ আদেশ, মূল থেকে কার্যকর করে পোস্টগ্রিজ লক ফাইলটি সরিয়ে দিয়েছে:

rm /usr/local/var/postgres/postmaster.pid

এবং তারপর :

brew services restart postgresql

বেরজিইআইআই থেকে: https://github.com/ga-wdi-boston/capstone-project/issues/325

আশা করি এটি সাহায্য করবে :)

শুভেচ্ছা !!


5

আপনি যদি একটি কাজ পরে এই সমস্যা আঘাত যদি brew upgrade(f.ex একটি নতুন প্রধান সংস্করণ যা আপগ্রেড postgres 9.3.0করতে 9.4.0বা উচ্চতর), তারপর এই একটি করুন:

https://github.com/Homebrew/homebrew/issues/35240 থেকে @ দিমিত্রিগুসেভের সমাধান

নিম্নলিখিত সরকারী [পোস্টগ্র্যাস্কল] মাইগ্রেশন গাইড সাহায্য করেছে:

brew switch postgres 9.3.5    # presuming you already installed 9.4.1
pg_dumpall > outputfile
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
mv /usr/local/var/postgres /usr/local/var/postgres.old
brew switch postgres 9.4.1
initdb -D /usr/local/var/postgres
psql -d postgres -f outputfile

এখানেই শেষ. আমদানি ভাল হয়েছে কিনা তা পরীক্ষা করে দেখুন, তারপরে ব্যাকআপগুলি মুছুন:

rm outputfile
rm -Rf /usr/local/var/postgres.old

এখানে সমস্যাটি হ'ল পোস্টগ্রাগের একটি বড় সংস্করণ আপগ্রেড করার জন্য, আপনার ডাটাবেসটি পুনরায় তৈরি / স্থানান্তর করা প্রয়োজন necessary এবং সম্ভবত chownডিরেক্টরি বা ম্যানুয়ালি কল initdb

আরও দেখুন: ডেটা না হারিয়ে PostgreSQL কীভাবে 9.5 সংস্করণ থেকে 9.5 সংস্করণে আপগ্রেড করবেন?


আপনি হোমব্রু ব্যবহার করছেন না এমন ক্ষেত্রে কিছু অন্যান্য টিপস, এটি কার্যকর হতে পারে:

কীভাবে পিজি সার্ভারটি ম্যানুয়ালি থামানো যায়:

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

কীভাবে পিজি সার্ভারটি ম্যানুয়ালি শুরু করবেন:

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


4

আপনার পোস্টগ্রিজ ফাইলটি এটিতে /usr/local/var/postgres/বা এর মধ্যে থাকতে পারে তা সন্ধান করুন /usr/var/postgres/এবং তারপরে postmaster.pidসেই ফোল্ডারে উপস্থিত ফাইলটি মুছুন ।


3

করা host: localhostমধ্যে database.ymlফাইল এবং এই কমান্ডটি প্রয়োগ করুন:

rake db:create db:migrate  

2

পোস্টগ্রিস অ্যাপ্লিকেশন সহ ম্যাক ব্যবহারকারীরা অ্যাপ্লিকেশনটি খুলতে (স্পটলাইট অনুসন্ধান পোস্টগ্রিস অনুসন্ধান করতে বা আপনার মেনু বারে হাতির আইকনটি সন্ধান করতে) চাইতে পারেন। এর মধ্যে আপনি বার্তাটি সহ একটি লাল এক্স দেখতে পাবেন: "বাসি পোস্টমাস্টার.পিড ফাইল"। দুর্ভাগ্যক্রমে স্পটলাইট অনুসন্ধান এই ফাইলটির অবস্থান প্রদর্শন করবে না। "সার্ভার সেটিংস ..." ক্লিক করুন এবং যে ডায়লগ বাক্সটি খোলে, তথ্য ডিরেক্টরি খোলার জন্য "প্রদর্শন" বোতামটি ক্লিক করুন। একটি ফোল্ডারে নেভিগেট করুন (আমার জন্য এটি "ভ্যার -10" ছিল), এবং postmaster.pidফাইলটি মুছুন ।

পোস্টগ্রিস অ্যাপ্লিকেশনটিতে ফিরে যান এবং স্টার্ট বোতামটি ক্লিক করুন। "রেডিং" বার্তাটি দিয়ে এই লাল এক্সকে সবুজ চেক মার্কে পরিণত করা উচিত। এখন আপনার সফলভাবে rails serverটার্মিনালের মতো রেল কমান্ডগুলি চালানো উচিত ।

Postgres অ্যাপ সার্ভার সেটিংস - ডেটা ডিরেক্টরি দেখান


এটি আমার জন্য এটি সমাধান করেছে। সমাধানের জন্য অনেক ধন্যবাদ! এটি একটি প্রক্রিয়া ছিল!
বয়েড

2

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

আমি পর্দার শীর্ষে গেলাম (আমি একটি ম্যাকে আছি) এবং ছোট হাতির আইকনটি ক্লিক করে 'স্টার্ট' ক্লিক করলাম।

আমাদের সার্ভারটি চালু ছিল না।

আশা করি এটি কারওর জন্য সহজ সমাধান সরবরাহ করে।


1

এটি অবশ্যই ক্রিস স্লেডের উত্তর যা আমাকে সাহায্য করেছিল।

এই সমস্ত অবশিষ্ট প্রক্রিয়াগুলি কার্যকর করার জন্য আমি একটি ছোট স্ক্রিপ্ট লিখেছিলাম:

kill_postgres() {
  if [[ $* -eq "" ]]; then
    echo "Usage: 'kill_postgres <db_name>' to kill remaining instances (Eg. 'kill_postgres my_app_development')"
  else
    gksudo echo "Granted sudo"
    pids="$(ps xa | grep postgres | grep $* | awk '{print $1}' | xargs)"
    if [[ $pids -eq "" ]]; then
      echo "Nothing to kill"
    else
      for pid in "${pids[@]}"
      do
        echo "Killing ${pid}"
        sudo kill $pid
        echo "Killed ${pid}"
      done
      kill_postgres $*
    fi
  fi
}

1

আমি (উন্নয়ন সবকিছু কাজ), আমার ক্ষেত্রে ডিবি সার্ভার উৎপাদনে একই সমস্যা ছিল না , অ্যাপ্লিকেশান হিসাবে একই মেশিনে তাই পরিশেষে কি কাজ লেখা দ্বারা শুধু স্থানান্তরণের হল:

bundle exec rake db:migrate RAILS_ENV=production

এবং তারপরে সার্ভার এবং সমস্ত কিছু পুনরায় চালু করুন worked


1

আমি জানি এটি দেরি হয়ে গেছে তবে কারও সাহায্য করতে পারে। আমি একই সমস্যা ছিল। দেখা যাচ্ছে যে আমি 9.1 এবং 9.5 পোস্টের দুটি সংস্করণ পেয়েছি। আমি 9.1 এবং 9.5 কে আনইনস্টল করে আবার 9.5 ইনস্টল করেছি এবং এটি আমার পক্ষে কাজ করে।


1

আপনি সম্ভবত আপনার কম্পিউটার পুনরায় চালু করেছেন এবং পোস্টগ্র্রেস অ্যাপ্লিকেশনটি চালু করতে ভুলে গেছেন।


1

আমারও একই সমস্যা ছিল। আমি PostgreSQLলগ ফাইলের শেষ লাইনটি চেক করি /var/log/postgresql। ফাইল /etc/postgresql/9.5/main/postgresql.conf- এ একটি অপরিচিত কনফিগারেশন প্যারামিটার ছিল । postgresql.confআমার সমস্যার সমাধানে ত্রুটি রেখাটি মন্তব্য করা ।


1

আমার সমস্যাটি আমার অ্যাপ্লিকেশন.আইএমএল ফাইলে ছিল। আমার ডাটাবেসের urlউপর herokuবন্দর 5342. ব্যবহার করছেন না আপনার চেক ছিল herokuকনফিগ var DATABASE_URL। প্রযোজ্য ডাটাবেসের জন্য আপনার অ্যাপ্লিকেশনটিতে ছিল কিনা তা নিশ্চিত করুন with


1

আমারও একই সমস্যা ছিল, এই ব্যাখ্যাটি আমার জন্য এটি সমাধান করেছে: http://blog.55minutes.com/2013/09/postgresql-93-brew-upgrade/

মূল পদক্ষেপটি আমার /usr/local/var/postgres/server.log এর লেজের দিকে তাকিয়ে ছিল, যা আমাকে দেখতে দেয় আসল সমস্যাটি কী ছিল, যা ছিল আমি পোস্টগ্র্যাস এসকিউএল আপগ্রেড করার প্রক্রিয়া সম্পূর্ণভাবে শেষ করে নি।


এখানে অনুরূপ পরিস্থিতি - আমার জন্য চাবিকাঠিটিও ছিল server.log। আমার উত্তরটি এখানে
নাথান ওয়ালেস

1

আমি কেবল এই আদেশটি চালিয়েছি sudo service postgresql restart এবং সবকিছু আবার কাজ করেছে।


0

আমি রেল সার্ভারটি বন্ধ করে দৌড়ে এসে rake db:migrateআমার শুরু করি rails s


0

brew upgradeপোস্টগ্রেএসকিএল আপডেট হওয়া পরে আমি এই ত্রুটির মধ্যে পড়েছিলাম । এই দুর্দান্ত পোস্ট থেকে আমার সমস্যাটি ঠিক কীভাবে ঠিক করা যায় তা আমি খুঁজে পেয়েছি। আমি পোস্টগ্রাগুলি ব্যাক আপ করতে এবং চালাতে সক্ষম হয়েছি এবং এমনকি আমার বিদ্যমান সমস্ত ডাটাবেসগুলিতে স্থানান্তরিত করেছি। https://coderwall.com/p/ti4amw/how-to-launch-postgresql-after-upgrade


0

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

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

pg_ctl -D /usr/local/var/postgres start && brew services start postgresql

তারপরে পোস্টগ্রিজ অ্যাক্সেস করার জন্য আমি এই আদেশটি চালিয়েছি ran

psql postgres

এবং পোস্টগ্রিস প্রম্পটে তখন ভূমিকাগুলি তালিকা করতে আমি "\ du" টাইপ করেছি

postgres=# \du

পোস্টগ্রাগের ভূমিকা অনুপস্থিত ছিল তাই আমাকে এই আদেশ দিয়ে এটি তৈরি করতে হয়েছিল

CREATE ROLE POSTGRES WITH SUPERUSER CREATEDB CREATEUSER CREATEROLE REPLICATION BYPASSRLS ;

এটি আমার সমস্যার সমাধান করেছে এবং আমি আশা করি এটি অন্য কাউকে সাহায্য করবে।


0

আপনাকে postmaster.pidফাইলটি মুছতে হবে না , কারণ এটি ডেটা দুর্নীতিতে আমন্ত্রণ জানায়।

অপশন? কেবল killপ্রক্রিয়া (ব্যবহার করবেন না kill -9, কেবল একটি সাধারণ কিল করবে)।

তারপরে কেবল পোস্টগ্রিজ সার্ভারটি পুনরায় চালু করুন এবং আপনি যেতে ভাল!

এটি অর্জনের পদক্ষেপ এখানে:

  1. postmaster.pidফাইলটি সন্ধান করুন এবং খুলুন (খনিটি ম্যাক সিয়েরায় রয়েছে)

    vi ~/Library/Application\ Support/Postgres/var-10/postmaster.pid

  2. পিআইডি অনুলিপি করুন - এটি postmaster.pidফাইলের প্রথম লাইনের নম্বর

  3. প্রক্রিয়াটি মেরে ফেলুন kill PID, উদাহরণস্বরূপ, যদি আমার পিআইডি 381 হয়, আমি করবkill 381
  4. পোষ্ট্রে পুনঃসূচনা করুন - যদি ক্রু ব্যবহার করা হয় তবে করুন brew services start postgresql। বা যদি পোস্টগ্র্যাস অ্যাপ ব্যবহার করে থাকে তবে কেবল startবোতামটি ক্লিক করুন

0

হোমব্রিউ প্যাকেজ ম্যানেজারটিতে স্বয়ংক্রিয়ভাবে শুরু করার জন্য লঞ্চক্টল প্লিস্ট অন্তর্ভুক্ত রয়েছে। আরও তথ্যের জন্য চালান brew info postgres

ম্যানুয়ালি শুরু করুন:

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

ম্যানুয়ালি থামান:

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

স্বয়ংক্রিয়ভাবে শুরু করুন:

"পোস্টগ্রেস্কল এখনই শুরু করতে এবং লগইনটিতে পুনরায় চালু করতে:"

brew services start postgresql

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