حمیدرضا مهدوی‌پناه
حمیدرضا مهدوی‌پناه
خواندن ۲ دقیقه·۱ ماه پیش

رفع خطای MongoDB هنگام راه‌اندازی با Homebrew روی macOS


چگونه سرویس mongodb-community را با Homebrew روی macOS با اصلاح دسترسی‌ها اجرا کنیم

لینک مطلب به انگلیسی در وبلاگ hamidreza.tech

مقدمه

هنگام نصب نسخه‌ی Community از MongoDB روی مک‌بوک خودم با استفاده از Homebrew (مستندات رسمی MongoDB)، با مشکلی مواجه شدم: سرویس mongodb-community به نظر می‌رسید که با موفقیت شروع به کار کرده، اما وقتی وضعیت آن را بررسی کردم به صورت خطا نمایش داده شد. اگر شما هم با همین مشکل مواجه هستید، این راهنما می‌تواند به شما کمک کند.

مشکل

پس از اجرای دستور زیر:

brew services start mongodb-community

پیام تأیید دریافت کردم. با این حال، وقتی وضعیت سرویس را بررسی کردم:

brew services list

این نتیجه نمایش داده شد:

Name Status User Plist mongodb-community error

فایل لاگ MongoDB (/usr/local/var/log/mongodb/mongo.log) شامل هشدارهایی بود:

  • اجرای MongoDB به عنوان کاربر root:
    "You are running this process as the root user, which is not recommended"
  • دریافت سیگنال توقف:
    "Received signal","attr":{"signal":15,"error":"Terminated: 15"}}

این هشدارها نشان می‌داد که MongoDB به عنوان کاربر root اجرا شده است، که این می‌تواند باعث مشکلات دسترسی و توقف سرویس شود.

راه‌حل

مشکل اصلی مربوط به مالکیت نادرست دایرکتوری‌های داده و لاگ MongoDB بود. در اینجا مراحل رفع این مشکل آمده است:

مراحل:

  1. توقف سرویس MongoDB:
    brew services stop mongodb-community
  2. متوقف کردن فرآیندهای در حال اجرای MongoDB:
    pkill -f mongod
  3. تغییر مالکیت دایرکتوری‌های MongoDB:
    sudo chown -R $(whoami) /usr/local/var/mongodb
    sudo chown -R $(whoami) /usr/local/var/log/mongodb
  4. بررسی مالکیت دایرکتوری‌ها:
    ls -ld /usr/local/var/mongodb
    ls -ld /usr/local/var/log/mongodb
    اطمینان حاصل کنید که نام کاربری شما به عنوان مالک نمایش داده شود.
  5. شروع سرویس MongoDB به عنوان کاربر خودتان:
    brew services start mongodb-community
  6. بررسی وضعیت سرویس:
    brew services list
    اکنون سرویس باید به صورت started و تحت نام کاربری شما نمایش داده شود.
  7. تست اتصال به MongoDB:
    mongosh
    باید بتوانید به موفقیت به شل MongoDB متصل شوید.

نتیجه‌گیری

با اصلاح دسترسی دایرکتوری‌ها و اطمینان از اجرای MongoDB تحت حساب کاربری خود (و نه به عنوان root)، می‌توانید خطای مرتبط با شروع سرویس mongodb-community با Homebrew روی macOS را برطرف کنید. به یاد داشته باشید که از استفاده از sudo با دستورات brew اجتناب کنید تا از مشکلات اینچنین جلوگیری شود.

mongodbدیتابیسmacosHomebrewبرنامه نویسی
مهندس نرم‌افزار هستم و به عنوان Senior Software Engineer مشغول به کارم. به جاوااسکریپت، پایتون، دیتابیس‌ها و طراحی و معماری نرم‌افزار علاقه زیادی دارم. وبلاگ‌هام: yavarjs.ir و hamidreza.tech
شاید از این پست‌ها خوشتان بیاید