ডেটা ডিরেক্টরি পরিবর্তন করার পরে মঙ্গোডিবি শুরু হয় না


10

আমি yummongodb ব্যবহার করে একটি উদাহরণ ইনস্টল করেছি have । এখন সবকিছু ঠিকঠাক কাজ করে। আমি পরিষেবাটি ব্যবহার করে শুরু করেছি । এটি ভালই কাজ করে. তারপরে আমি কনফিগারেশন ফাইলটিতে এবং পরিবর্তন করেছি । আমি আবার সার্ভার পুনরায় চালু করেছি এবং আমি পরিষেবাটি শুরু করি। তবে আমি নীচের ত্রুটি পেয়েছি:service mongod startdata directorylog path

Restarting mongod (via systemctl):  Job for mongod.service failed. See 'systemctl status mongod.service' and 'journalctl -xn' for details.
                                                           [FAILED]

আমি যখন দেই systemctl status mongod.serviceআমি নীচে পেতে:

 Loaded: loaded (/etc/rc.d/init.d/mongod)
   Active: failed (Result: exit-code) since Wed 2015-03-18 11:35:56 IST; 22s ago
  Process: 10672 ExecStop=/etc/rc.d/init.d/mongod stop (code=exited, status=0/SUCCESS)
  Process: 10841 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=1/FAILURE)
 Main PID: 10509 (code=exited, status=0/SUCCESS)

Mar 18 11:35:56 localhost systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
Mar 18 11:35:56 localhost runuser[10850]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
Mar 18 11:35:56 localhost runuser[10850]: pam_unix(runuser:session): session closed for user mongod
Mar 18 11:35:56 localhost mongod[10841]: Starting mongod: [FAILED]
Mar 18 11:35:56 localhost systemd[1]: mongod.service: control process exited, code=exited status=1
Mar 18 11:35:56 localhost systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..
Mar 18 11:35:56 localhost systemd[1]: Unit mongod.service entered failed state.

আমি যখন দেই journalctl -xnআমি নীচে পেতে:

-- Logs begin at Wed 2015-03-18 08:56:56 IST, end at Wed 2015-03-18 11:35:56 IST. --
Mar 18 11:30:01 localhost systemd[1]: Starting Session 20 of user root.
-- Subject: Unit session-20.scope has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit session-20.scope has begun starting up.
Mar 18 11:30:01 localhost systemd[1]: Started Session 20 of user root.
-- Subject: Unit session-20.scope has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit session-20.scope has finished starting up.
-- 
-- The start-up result is done.
Mar 18 11:30:01 localhost CROND[10712]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Mar 18 11:35:56 localhost systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
-- Subject: Unit mongod.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mongod.service has begun starting up.
Mar 18 11:35:56 localhost runuser[10850]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
Mar 18 11:35:56 localhost runuser[10850]: pam_unix(runuser:session): session closed for user mongod
Mar 18 11:35:56 localhost mongod[10841]: Starting mongod: [FAILED]
Mar 18 11:35:56 localhost systemd[1]: mongod.service: control process exited, code=exited status=1
Mar 18 11:35:56 localhost systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..
-- Subject: Unit mongod.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

কেউ কি আমাকে এটি ঠিক করতে সহায়তা করতে পারেন? ধন্যবাদ !!!

PS : আমি যে ডেটা ডিরেক্টরি তৈরি করেছি তা ব্যবহারকারীর জন্য সমস্ত অনুমতি রয়েছে। তবে আবার যদি আমি ডেটা ডিরেক্টরিটি ডিফল্ট ( /var/lib/mongodb) এ পরিবর্তন করি তবে এটি ভাল কাজ করে।

উত্তর:


6

আমি একটি অনুরূপ ইস্যুতে দৌড়েছি এবং এটি mongod.confআমার ক্ষেত্রে একটি ভুল কনফিগার্ড ফাইল হিসাবে পেয়েছি। এটিও হতে পারে যে নতুন ডিরেক্টরিতে অনুমতিগুলি সঠিকভাবে সেট করা নেই। chown -R mongod:mongod <directory name>আমি কীভাবে অ্যাক্সেস নিশ্চিত করেছিলাম (এবং অবশ্যই chmod 600 <dir>)। শেষ অবধি, ls -Zপ্রসঙ্গটি সঠিক কিনা তা নিশ্চিত করতে একটি চালান । আমি কেবল আমার জন্য কাজ করা ডিফল্ট ডিরেক্টরিটির সাথে তুলনা করেছি।

যদি এটি ইতিমধ্যে সমাধান না করা হয় তবে দয়া করে আপনার লগ ফাইলের সামগ্রীগুলিও প্রদর্শন করুন। সেখানে কিছু ক্লু থাকতে পারে।


4

@ মুস্তাস্কিও যা বলেছিলেন তা প্রসারিত করে আমার কাছে উত্তরটি নতুন logpathএবং এর উপর সেলইনাক্স প্রসঙ্গ ছিল dbpath। আমি নিম্নলিখিত কমান্ডগুলি চালিত করেছি এবং সমস্ত ভাল ছিল:

sudo chcon -Rv --type=mongod_log_t $logpath
sudo chcon -Rv --type=mongod_var_lib_t $dbpath

(এটি RHEL 7.1 বিটিডব্লুতে ছিল)


4

আমার এটি রাস্পবেরি পাই পাশাপাশি আমার উবুন্টু সার্ভারে ছিল।

"মংডোড। সার্ভিসের জন্য কাজ ব্যর্থ হয়েছে। বিশদগুলির জন্য 'সিস্টেমেটেক্ট স্ট্যাটাস মংডোড সার্ভিস' এবং 'জার্নাল্টেল-এক্সএন' দেখুন। "

বিভিন্ন কারণে বিভিন্ন কারণে আমার এই সমস্যাটি ছিল:

  1. ভুল-নামযুক্ত .conf ফাইল - আমার আসল ফাইলটি ছিল যখন মংডোব স্ক্রিপ্ট (আমি সরিয়ে নিয়েছি /etc/init.d/mongodb), লাইন 57 । 57 লাইন পরিবর্তন করে এটি সংশোধন করেছে। এছাড়াও, আমি স্ক্রিপ্টের নামটি একই রকম পরিবর্তন করতে পারতাম।CONF=/etc/mongod.conf/etc/mongodb.conf

  2. mongod.lock ফাইল - শেষবারের মতো মঙ্গোদ থামিয়েছে এটি ডাটাবেস বন্ধ করার সুযোগ পায়নি। এটি আপনার ডাটাবেস ফোল্ডারে কল করা একটি ফাইল ছেড়ে দেয় mongod.lock। ফোল্ডারের অভ্যন্তরে একটি নম্বর রয়েছে (আমি বিশ্বাস করি এটি মোংগো সর্বশেষে ব্যবহৃত পিআইডি)। এই ফাইলটি উপস্থিত থাকলে আপনি মঙ্গড পরিষেবাটি শুরু করতে পারবেন না। ফাইলটি মুছুন এবং আবার চেষ্টা করুন।

  3. মঙ্গো ব্যবহারকারী - আমার একটি লিনাক্স ব্যবহারকারী তৈরি করা দরকার যা মঙ্গোড.সার্ভিস শুরু এবং চালনার জন্য দায়ী। আমি আমার মঙ্গো নাম রেখেছি এবং আমার /etc/init.d/mongodbস্ক্রিপ্টটি আপডেট করেছি , আমার জন্য 95 লাইন DAEMONUSER=${DAEMONUSER:-mongo}। এটি অবশ্যই কেবল তখনই কাজ করবে যদি আপনি মঙ্গো নামে একটি নতুন ব্যবহারকারী তৈরি করেন (বা আপনি যা চান তা আমার মনে হয়)।

  4. ডিবি অনুমতি - এটি একটি জনপ্রিয়। আপনি যখন ডেটাবেস ফোল্ডারটি অবস্থিত হবে তা ঘোষণা করার পরে আপনাকে নিশ্চিত করতে হবে যে আপনার 'মঙ্গো' ব্যবহারকারীর সেই ফাইলটির মালিকানা রয়েছে। উদাহরণস্বরূপ, আমার ডাটাবেসটি সঞ্চয় করা আছে /data/db। আমি নিম্নলিখিত কমান্ডটি চালিত করেছি:
    sudo chown –R mongo:mongo /data
    এবং /dataএটি মঙ্গো ব্যবহারকারীর কাছে এবং এর সমস্ত উপ-ডিরেক্টরিগুলির মালিকানা সরিয়ে নিয়েছে।

  5. ভুল পরিষেবা - এটি আমার জন্য কিছুটা বিব্রতকর ছিল। আমি mongoপরিবর্তে পরিষেবা হিসাবে শুরু করার চেষ্টা করছিলাম mongodmongoআপনি যে শেলটি চালাতে পারেন এবং তা হ'ল মঙ্গোতে ম্যানুয়ালি ইনপুট কমান্ড। এইভাবে আমি আমার ডাটাবেস তৈরি করেছি এবং উদাহরণ হিসাবে কয়েকটি বস্তু যুক্ত করেছি। mongodঅন্যদিকে মঙ্গো ডেমন যা আপনার লেখার / অ্যাক্সেসের জন্য ব্যবহার করে এমন অন্যান্য অ্যাপ্লিকেশনগুলির জন্য আপনার ডাটাবেসের হোস্টিংয়ের পটভূমিতে চলে। নিশ্চিত হয়ে নিন যে আপনি এগুলি আপনার কনফিড ফাইল, স্ক্রিপ্ট ইত্যাদিতে কোথাও মিশ্রিত করছেন না Make

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

পাশের নোটে, আমার mongodb.confফাইলটি খালি। এমনকি এটি খালি থাকলেও, আপনাকে এটিকে সঠিকভাবে নির্দেশ করতে হবে।


2

আমি এটি চেষ্টা করেছি এবং এটি কাজ করেছে।

sudo chown -R mongodb:mongodb /var/log/mongodb
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chmod -R 755 /var/lib/mongodb
sudo chmod -R 755 /var/log/mongodb

1

আমি মঙ্গো থেকে সেন্টোস Rep রেপোস, মঙ্গোসের নিজস্ব রেপোতে আপগ্রেড হয়ে এই সমস্যায় পড়েছি। কার্যকরভাবে ভি 2 থেকে ভি 3 এ আপগ্রেড করা।

দেখা যাচ্ছে যে সেন্টোস rep টি রেপো ব্যবহারকারীর জন্য মঙ্গডব প্রয়োজন , অন্যদিকে মঙ্গোসের নিজস্ব রেপো ব্যবহারকারী মোঙ্গোদ চায়

শেষ পর্যন্ত এটি লগ ফাইল ছিল যা পুরানো ইনস্টলেশন থেকে এখনও বিদ্যমান ছিল যা নতুন ইনস্টলেশনটি লিখতে পারেনি, কারণ ব্যবহারকারীর নাম আলাদা ছিল এবং আমি লক্ষ্য করি নি।


1

আমার সিস্টেমে (ফেডোরা) আমার একটি tmpfs (ram) এর উপর "/ var / log" আছে, আমি যখনই এই পার্টিশনের সমস্ত কিছু পুনরায় বুট করি তখনই তা হারিয়ে যায়। এসএসডি ড্রাইভ থাকার কারণে অনেক লোক এতে এবং আই / ও হ্রাস করতে চায় (ড্রাইভের জীবনকাল বাঁচাতে পারে)।

সমাধানটি হ'ল / var / log / mongodb ডিরেক্টরি তৈরি করুন এবং প্রতিবার সিস্টেমটি পুনরায় বুট করার পরে মংগডবকে মালিক হিসাবে সেট করুন।

এর মতো স্ক্রিপ্ট ব্যবহার করুন:

#!/bin/sh
sudo mkdir /var/log/mongodb
sudo chown mongodb:mongodb /var/log/mongodb

আপনি যদি নিশ্চিত হন না যে মঙ্গড দ্বারা ব্যবহারকারী কী ব্যবহার করছেন কেবল তা করুন:

cat /etc/passwd | grep mongo

আপনার সিস্টেমের শুরুতে স্ক্রিপ্টটি যুক্ত করুন।


0

আপনি পাথ সম্পাদনা করেন না। কমান্ড দিয়ে আমি সমস্যার সমাধান করেছি:

mongod --dbpath /data/mongo

0

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


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

0

মঙ্গোডিবি সার্ভারটি বন্ধ করুন:

service mongod stop

মঙ্গো ডিরেক্টরিটি নতুন ডিরেক্টরিতে অনুলিপি করুন:

rsync -av /var/lib/mongo /home/data/

পুরানো ডিরেক্টরিটির নাম পরিবর্তন করুন:

mv /var/lib/mongo /var/lib/mongo.bak

নতুন অবস্থানে সিমিলিংক করুন:

ln -s /home/data/mongo /var/lib/mongo

মঙ্গোডিবি সার্ভার শুরু করুন:

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