MongoDB 2.6 tidak dimulai pada Ubuntu 15.04


51

Saya menginstal MongoDB 2.6 pada Ubuntu 15.04:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install -y mongodb-org

Itu selesai tanpa masalah. Namun, ketika saya mencoba memulainya, saya mendapatkan kesalahan berikut:

$ sudo service mongod start
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.

Bagaimana saya bisa memperbaikinya?

Jawaban:


65

Saya menginstal dari repositori debian mengi dan berfungsi dengan baik.

Pertama-tama pastikan Anda menghapus paket mongodb-org dan semua dependensinya:

sudo apt-get purge mongodb-org
sudo apt-get autoremove

Hapus mongodb.list lama yang Anda buat:

sudo rm /etc/apt/sources.list.d/mongodb.list

Gunakan repositori Debian sebagai gantinya:

echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Perbarui dan pasang kembali:

sudo apt-get update
sudo apt-get install -y mongodb-org

Setelah itu, Anda dapat berhasil menjalankan server:

sudo service mongod start

atau

systemctl start mongod

(seperti yang diklarifikasi oleh Ernie Hershey sebagai balasan atas komentar Roman Gaufman di sini: https://jira.mongodb.org/browse/SERVER-17742 )


1
Saya mencobanya dan mendapatkan layanan yang tidak ditemukan ketika mencoba memulai mongod
Moshe Revah

2
Apakah Anda yakin Anda secara otomatis menghapus dependensi? Saya mendapatkannya juga, tetapi kemudian saya menyadari bahwa saya belum menghapus semua paket terkait mongodb. Setelah menghapus semuanya dan diinstal dari repositori wheezy, itu berfungsi dengan baik dengan systemd.
Penjualan Dielson

1
menyelamatkan saya banyak sakit kepala
Srivathsa Harish Venkataramana

1
Terima kasih. Pembersihan diikuti oleh autoremove (hampir lupa) melakukan trik.
Nenad Vukicevic

Dalam kasus saya pada 14,04 tetapi kemungkinan pada 15,04 tailing /var/log/syslog, memverifikasi upaya yang gagal kemudian mengedit /etc/init/mongodb.confjuga dapat membantu jika Anda menggunakan direktori data, direktori log, atau instance pengguna yang tidak standar.
Makan di Joes

25

Tim MongoDB mengatakan mereka tidak akan mendukung Ubuntu 15.04 dan sebaliknya berencana untuk mendukung 16.04 (lihat https://jira.mongodb.org/browse/SERVER-17742 ).

Ubuntu 15,04 meningkatkan sistem init default dari Upstart ke systemd. Saya tidak berhasil memulai MongoDB 3.0 dengan systemd.

Anda dapat beralih kembali ke Pemula dengan menginstal upstart-sysv:

sudo apt-get install upstart-sysv

Kemudian reboot dan MongoDB harus di atas.

Saya berharap menemukan cara mudah untuk menjalankan MongoDB di Ubuntu 15.04 tanpa mengubah waktu.


2
Ini adalah cara terbaik untuk menyelesaikan masalah ini sekarang. Jika ada yang tahu cara lain, silakan bagikan di sini.
Fernando Kosh

Dalam kasus saya menginstal sstv-pemula dan memulai kembali hanya crash.
Didac Montero

@DidacMontero Lihatlah wiki.ubuntu.com/SystemdForUpstartUsers untuk opsi lain
Moshe Revah

Berfungsi untuk saya di Ubuntu 15.04, terima kasih untuk perbaikannya!
Lil 'Bits

ini bekerja dengan baik untuk saya.
slimflem

4

Anda menginstal dari paket yang dipublikasikan langsung dari mongodb.org. Anda harus menginstal dari paket-paket yang disediakan di tempat penyimpanan Ubuntu. Paket Debian / Ubuntu telah ditambal dengan unit layanan systemd, untuk mengisi lubang yang ditinggalkan oleh mongodb.org.

(Tidak ada kekurangan mongodb.servicefile unit di WWW. Tidak sulit untuk menulis satu pun. Saya punya.)

Khususnya: Anda akan menemukan unit layanan seperti itu di paket mongodb-server versi 2.6 untuk Ubuntu versi 15 . Jadi instal saja paket itu.

(Perhatikan bahwa unit layanan yang disediakan Debian / Ubuntu tidak menerapkan arahan unit layanan systemd yang direkomendasikan mongo .)

Bacaan lebih lanjut


Namun pendekatan ini tidak menyelesaikan masalah bagi mereka yang menginginkan MongoDB> = 3.0
Dielson Sales

Ya itu. Anda jelas tidak membaca paragraf kedua atau bacaan lebih lanjut.
JdeBP

4

Saya membuat skrip Systemd yang tampaknya berfungsi untuk Ubuntu 15.04+ dan Mongo 3.0+:

[Unit]
Description=High-performance, schema-free document-oriented database
Documentation=man:mongod(1)
After=network.target

[Service]
Type=forking
User=mongodb
Group=mongodb
RuntimeDirectory=mongod
PIDFile=/var/run/mongod/mongod.pid
ExecStart=/usr/bin/mongod -f /etc/mongod.conf --pidfilepath /var/run/mongod/mongod.pid --fork
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

https://gist.github.com/benileo/ada486d73f58dd93a0ee

Pastikan Anda mengatur direktori data Anda /etc/mongod.conf


1
Ini solusi terbaik.
J. Bruni

tautan tidak lagi berfungsi
Hotbelgo

Memperbaiki tautan.
benileo

Yang pasti, itu harus ditandai sebagai solusi terbaik.
Wédney Yuri

1

Bukankah ini jawaban terbaik? Dari pertanyaan rangkap: https://askubuntu.com/a/694226/255468 oleh @sclausen


Hanya saja tidak ada file layanan untuk systemd. Tidak perlu kembali ke pemula seperti yang dilakukan Kartik atau menggunakan repositori yang berbeda dari yang dijelaskan di https://docs.mongodb.org/manual/installation/ .

Buat file /lib/systemd/system/mongodb.service dengan konten berikut:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf

[Install]
WantedBy=multi-user.target


1

gunakan "mongodb" bukan "mongod"

yaitu

sudo service mongodb start

sudo service mongodb stop

0

Banyak dari jawaban ini terkait dengan Mongo 3.0, sedangkan pertanyaannya ditanyakan secara khusus tentang 2.6.

Saya telah berhasil menginstal 2.6 menggunakan repositori Debian dari 10gen. Tampaknya ini berfungsi dengan baik dengan Ubuntu 15.04.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install mongodb-org

Sumber: Cara Menginstal MongoDB 2.6 di Ubuntu 14.10, 14.04 dan 12.04 LTS


0

Sedangkan pertanyaannya adalah untuk versi 2.6. Saya mendapatkan kesalahan yang sama persis Unit mongod.service failed to loaddi Ubuntu 15.04 saya untuk versi 3.0.6. Akhirnya diselesaikan dengan menggunakan repositori wheezy yang sama yang disebutkan oleh Dielson Sales di atas.

Dan setelah instalasi (mengikuti langkah-langkah yang dijelaskan oleh @Dielson Sales) menghadapi kesalahan di atas. Inilah cara saya akhirnya memutuskan.

A) Ubah file penyimpanan data default MongoDB dari / var / lib / mongodb ke / data / db

  • Pertama buat direktori baru / data / db sudo mkdir -p /data/db

  • Buka file mongod.conf sudo gedit /etc/mongod.confdan ubah baris "dbpath" seperti di bawah ini

  • Ganti dbpath = / var / lib / mongodb KE dbpath = / data / db dan simpan file.

  • Kemudian hapus default lama / var / lib / mongodb

  • Sekarang kita harus membuat semua direktori / file yang dimiliki oleh pengguna mongod

B) Jadi lari sudo chown -R mongodb:mongodb /data/db

Dan sekarang akhirnya saya bisa mulai dengan mongo sudo service mongod start

Dan chcek bahwa layanan ini berjalan sudo systemctl status mongod - Ini harus menampilkan pesan yang mirip dengan di bawah ini

Loaded: loaded (/etc/init.d/mongod)

Active: active (running) since Thu 2015-09-03 04:57:49 IST; 7s ago

Perincikan langkah-langkah saya di posting blog saya


0

Pertama, unduh mongodb:

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz

ekstrak unduhan:

tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

jalankan mongod (mongodb-linux-x86_64-3.0.6.tgz / bin / mongod) dengan atribut -dbpath:

sudo ./mongod --dbpath /path/of/the/directory

Ini bisa menjadi direktori kosong pilihan Anda

dan akhirnya, jalankan mongo (mongodb-linux-x86_64-3.0.6.tgz / bin / mongo)

./mongo

bekerja di ubuntu 15 saya :)

maaf untuk bahasa inggris saya yang buruk, saya tinggal di Brazil


0

Setelah berjam-jam mencari, solusinya adalah memutakhirkan ubuntu saya dari 15,04 menjadi 16,04 menggunakan perintah ini:

Langkah 1

sudo do-release-upgrade -d 

Ini akan memakan waktu beberapa menit jadi jangan panik, daripada Anda harus menghapus mongodb:

Langkah 2

sudo apt-get purge mongodb-org 
sudo apt-get autoremove`  
rm /etc/apt/sources.list.d/mongodb-org-3.0.list`  

Dan sekarang, instal mongodb tetapi menggunakan sumber ini:

echo 'deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main' | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Langkah 3

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10  
echo ‘deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main’ | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install mongodb-org
sudo service mongod status

Dan itu saja.

Catatan: Jika Anda mendapatkan kesalahan seperti 'E: ketik' deb 'di baris pertama. . . dalam file mongodb-org-3.0.list

yang harus Anda lakukan adalah masuk ke file ini menggunakan gedit dan menghapus 'di awal dan di akhir kalimat.


Bagian ini "Solusinya adalah memutakhirkan ubuntu saya dari 15,04 menjadi 16,04 ..." tidak masuk akal saat ini, karena 16,04 belum dirilis.
clearkimura

1
@clearkimura Ya itu. Nah, dalam alpha. Dan apa pun, build harian kedua Ubuntu 16.04 diinstal di komputer saya, dan saya tidak melihat masalah.
Bintang OS

0

Ubuntu 15.04+ menggunakan systemd bukan pemula . Mulailah dengan panduan instalasi resmi MongoDB . Kemudian gunakan resmi mereka mongod.service:

[Unit]
Description=High-performance, schema-free document-oriented database

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/local/bin/mongod $OPTIONS run
PIDFile=/var/run/mongodb/mongod.pid

[Install]
WantedBy=multi-user.target

Unduh, tambal, instal layanan dan atur hak akses dir +

$ curl -OL https://raw.githubusercontent.com/mongodb/mongo/1663f45b4e33e058a0203a81f50574a870882c34/rpm/mongod.service
$ sed -i 's/\/usr\/local/\/usr/g' mongod.service
$ sed -i '/Desc/a After=network.target' mongod.service
$ sudo sed -i '0,/\/var\/lib\/mongodb/s//\/data\/db/' /etc/mongod.conf
$ sudo cp mongod.service /lib/systemd/system/mongo.service
$ sudo mkdir -p /data/db
$ sudo chown -R mongodb:mongodb /data
$ sudo systemctl daemon-reload
$ sudo systemctl enable mongod

Memulai layanan

$ sudo systemctl start mongod

Periksa status layanan

$ sudo systemctl status mongod

0

Anda membuat kesalahan ketik pada perintah Anda.

Coba gunakan ini sebagai gantinya: sudo service mongodb start

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.