Tidak dapat terhubung ke server 127.0.0.1:7017


160

Saya mendapatkan kesalahan berikut:

alex@alex-K43U:/$ mongo
MongoDB shell version: 2.2.0
connecting to: test
Thu Oct 11 11:46:53 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
alex@alex-K43U:/$ 

Inilah yang terjadi ketika saya mencoba memulai mongodb:

* Starting database mongodb                                             [fail]

Saya sudah mencoba mongo --repair

Saya membuat chown dan chmod ke var, lib, dan data / db dan log mongodb.

Tidak yakin apa lagi yang harus dilakukan. Ada saran?

mongodb.log:

***** SERVER RESTARTED *****


Thu Oct 11 08:29:40 
Thu Oct 11 08:29:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 08:29:40 
Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit host=alex-K43U
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 08:29:41 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 08:29:41 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal"
************** 
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Oct 11 08:29:41 dbexit: 
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files...
Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished
Thu Oct 11 08:29:41 dbexit: really exiting now

EDIT:

Saya melepas kunci kemudian melakukan perbaikan mongod dan mendapatkan kesalahan ini:

Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

jadi saya melakukannya dengan sudo:

alex@alex-K43U:~$ sudo mongod --repair
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit host=alex-K43U
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 12:05:42 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 12:05:42 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 12:05:42 [initandlisten] options: { repair: true }
Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal"
Thu Oct 11 12:05:42 [initandlisten] finished checking dbs
Thu Oct 11 12:05:42 dbexit: 
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files...
Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished
Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock...
Thu Oct 11 12:05:42 dbexit: really exiting now

Tetapi masih memiliki masalah yang sama.


1
saya pikir tautan ini akan membantu Anda stackoverflow.com/questions/9647561/… dengan mengubah jalur db mongo
Med7at

8
sudo service mongod restartbekerja untuk saya
Sudip Bhandari

Jawaban:


31

Log menunjukkan bahwa mongodb sedang berakhir karena ada file kunci yang lama.

Jika Anda tidak dan tidak menjalankan penjurnalan, hapus file kunci, jalankan perbaikan, dan mulai mongodb lagi.

Jika Anda sedang atau sedang menjalankan penjurnalan, lihat dokumen DB Mongo yang relevan . Perhatikan bahwa mereka berkata, "Jika Anda menggunakan Journal, Anda seharusnya tidak melakukan perbaikan untuk memulihkan ke kondisi yang konsisten." Jadi, jika Anda membuat jurnal, perbaikannya mungkin akan memperburuk keadaan.


25
Itu buruk bahwa perbaikan dapat merusak barang!
UpTheCreek

1
Dalam situasi jurnal diaktifkan apa yang harus dilakukan jika saya mendapatkan koneksi menolak kesalahan sangat freqeuntly?
Shashank

149
Step 1: Remove lock file.
sudo rm /var/lib/mongodb/mongod.lock

Step 2: Repair mongodb. 
sudo mongod --repair 

Step 3: start mongodb.
sudo start mongodb 
or
sudo service mongodb start

Step 4: Check status of mongodb.
sudo status mongodb 
or   
sudo service mongodb status

Step 5: Start mongo console.
mongo 

1
hai Nanhe Kumnar apa itu jalur awal di terminal. Apakah kita harus pergi ke folder cd / usr / local / opt / mongodb / atau yang lain, saya menghadapi masalah berikut Vijayvir-Singh: ~ vijayvir $ sudo rm /var/lib/mongodb/mongod.lock rm: / var / lib /mongodb/mongod.lock: Tidak ada file atau direktori seperti itu Vijayvir-Singh: ~ vijayvir $
Vijayvir Sing Pantlia

@vvss pertama-tama menemukan jalur file. Gunakan ini. cari mongod.lock
Nanhe Kumar

9
Dalam versi 2.4.8 itu /data/db/mongod.lockbukan/var/lib/mongodb/mongod.lock
Loolooii

84

Apakah Anda berlari mongodsebelum berlari mongo?

Saya mengikuti instruksi instalasi untuk mongodb dari http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ dan saya memiliki kesalahan yang sama seperti Anda hanya ketika saya berlari mongosebelum benar-benar menjalankan proses mongo dengan mongod. Saya pikir menginstal mongodb juga akan meluncurkannya tetapi Anda harus meluncurkannya secara manual mongodsebelum Anda melakukan hal lain yang membutuhkan mongodb.


10
Ini masalah saya. Saya terkejut ini tidak dijelaskan di muka dalam dokumen "Getting Started With Mongo".
jononomo

Ini benar-benar tidak masuk akal dari perspektif Pengalaman Pengguna. mongo.exeharus menjadi orang yang memulai DB.
Moshe Karmel

58

Ini karena proses mongod sedang down, Anda harus menjalankan perintah di bawah untuk mendapatkan proses mongod:

~$ sudo service mongodb stop

~$ sudo rm /var/lib/mongodb/mongod.lock

~$ sudo mongod --repair --dbpath /var/lib/mongodb

~$ sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb

~$ sudo service mongodb start

Semoga ini bisa membantu Anda.


2
Masalah terpecahkan. Terima kasih. Saya akan menambahkan perintah sudo service mongod stopdan sudo service mongodb stopsebelum perintah pertama karena beberapa orang mungkin masih menjalankannya.
Georgi Georgiev

1
Ini membantu saya memulai kembali mongo. namun saya tidak dapat mengakses database lama lagi. Bisakah Anda membantu saya di sini.
Ehsan

13

Mencoba

sudo service mongodb start

Ini menyelesaikan masalah saya.


Apa perbedaan antara sudo service mongod startdansudo service mongodb start
tokek

Saya tidak begitu yakin tetapi menebak mongodb adalah nama layanan, dan mongod adalah nama file program.
潘博韜

7

Periksa ruang kosong sistem file Anda dan tingkatkan jika kurang. Ini juga dapat menyebabkan mongo tidak memulai. Periksa file /var/log/mongodb/mongodb.log.

ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles

Ini terjadi pada saya dan saya menambahkan smallfiles = true ke file /etc/mongod.conf
Carlos

7

Coba jalankan mongodsebelumnya mongo.

sudo /usr/sbin/mongod di openuse saya

Ini menyelesaikan masalah saya,


6

jadi pertama-tama Anda harus menghapus file mongod.lock dengan perintah di bawah ini

sudo rm /var/lib/mongodb/mongod.lock

dan kemudian restart layanan mongo dengan mengeluarkan perintah di bawah ini

sudo service mongod restart 

4

Anda dapat memeriksa netstat -anp | grep 27017untuk melihat apakah port sedang digunakan oleh proses lain.


aneh, saya dapat ini: alex @ alex-K43U: ~ $ netstat -anp | grep 27017 (Tidak semua proses dapat diidentifikasi, info proses yang tidak dimiliki tidak akan ditampilkan, Anda harus menjadi root untuk melihat semuanya.)
alexchenco

2
Itu adalah hasil normal ketika dijalankan sebagai pengguna non-root, karena netstat hanya akan menampilkan proses yang diizinkan untuk dilihat oleh pengguna Anda.
Efren

Anda dapat menggunakan sudo netstat -anp | grep 27017 untuk melewati peringatan itu
Wiston Coronell

Yang ini bekerja untuk saya, Terima kasih banyak. Saya mendapatkan ini ketika saya menjalankan kode yang diberikan unix 2 [] STREAM 31095 - /tmp/mongodb-27017.sock dan saya menghapus file .sock, sekarang semuanya baik-baik saja.
Abel

4

Di windows jalankan cmd sebagai Admin:

  1. Buat direktori:

    mkdir c: \ mongo \ data \ db

  2. Instal layanan:

    mongod.exe - instal --logpath c: \ mongo \ logs --logappend --bind_ip 127.0.0.1 --dbpath c: \ mongo \ data \ db --directoryperdb

  3. Mulai MongoDB:

    mulai bersih MongoDB

4. Mulai Mongo Shell:

c:\mongo\bin\mongo.exe

Solusi ini berfungsi baik untuk saya


3

Ini bekerja untuk saya:

sudo rm /var/lib/mongodb/mongod.lock    
sudo service mongodb restart

3

Untuk referensi di masa mendatang, Ikuti langkah-langkah ini untuk menghindari kesalahan serupa:

1.Unduh MondoDB https://www.mongodb.com/

2. Buka terminal dan masukkan ke folder unduhan Anda atau folder apa pun yang Anda simpan untuk mengunduh mondodb Anda (Pastikan Anda mengekstrak folder mongodb Anda sebelum memasukkannya)

cd Downloads

3. Pindahkan mongodb ke jalur usr / lokal Anda

sudo mv mongodb-osx-... /usr/local/mongodb

4.cd ke folder lokal Anda

cd /usr/local/mongodb

5.membuat direktori baru

sudo mkdir -p /data/db

6.cd ke direktori baru yang baru saja dibuat di atas

cd /data/db

7. beri izin mongo

sudo chown YourMacUserName /data/db

8. Lalu buka / buka .bash_profile Anda

Untuk melakukannya, ikuti langkah-langkah ini:

Di terminal Anda yang baru

1 . cd 2 .pwd 3 .ls -l

Periksa apakah .bash_profile muncul di daftar file Anda di terminal Anda

jika tidak membuat -bash_profile

Membuat .bash_profile:

Di terminal Anda

sentuh .bash_profile

// lewati langkah ini jika Anda sudah memiliki .bash_profile

Langkah8:

Berikutnya di terminal Anda:

open .bash_profile

Dan di file bash Anda yang muncul terbuka tambahkan yang berikut:

MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin

Dan kemudian simpan . (Simpan File atau perintah S / CMD + S)

Step9: kembali di terminal Anda :

source .bash_profile

Sekarang buka dua terminal . Satu akan untuk daemon mondo Anda yang lain untuk mongo Anda .

Terminal 1: dalam tipe terminal Anda: mongod

mongodb

Keluaran: Terminal Mongod

Terminal 2:

mongo

Keluaran: Terminal Mongo

Juga pastikan Anda tidak membuat kesalahan ketik berikut saat memulai mongod Anda di terminal Anda: Ini tidak benar

mongo d

mengeluarkan kesalahan berikut : Gagal terhubung ke 127.0.0.1.17017, dalam (memeriksa soket untuk kesalahan setelah jajak pendapat), alasan: Koneksi ditolak

Ini benar:

mongod

(Seharusnya tidak ada ruang antara kata mongo dan d .. mondod

Akhirnya selalu ingat bahwa Anda harus menjalankan mondod sebelum menjalankan mongo di terminal Anda .


2

Saya mengikuti dokumen di http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ .

Setelah dikonfigurasi dan reboot, saya mengeksekusi sudo service mongod startdan mendapatkan ... [FAILED].

Akhirnya, saya menemukan bahwa itu mongodsudah dimulai. Saya pikir yum installditambahkan ke start otomatis.

Untuk memeriksa apakah Anda mongodsedang berjalan: service mongod status.

Semoga ini bisa membantu seseorang memiliki masalah yang sama.


2

Setelah sering berusaha akhirnya saya harus memecahkan masalah ...

Step 1: ps aux | grep mongo
Step 2: sudo rm /var/lib/mongodb/mongod.lock
Step 3: sudo mongod --repair
Step 4: mongo

2

Kesalahan ini bisa disebabkan oleh pengaturan IP binding MongoDB. Anda dapat memeriksa file konfigurasi MongoDB dengan

$ sudo vi /etc/mongodb.conf

Dalam kasus saya, IP mengikat diatur ke alamat intranet server, seperti berikut:

bind_ip = 10.10.1.14 
#port = 27017

Jadi saya telah memberikan mongo parameter IP untuk terhubung ke shell berdasarkan tipe:

$ mongo 10.10.1.14

Jangan lupa untuk me-restart layanan mongodb jika Anda mengubah konfigurasi.


2

Saya punya mongo versi 3.2.1 dan harus menghapus file kunci dari /data/db/dan setelah ini, berlari mongoddan mulai berhasil.

>rm /data/db/mongod.lock
>mongod


1

Setelah menghapus mongod.lock yang berada di dalam direktori data di OS windows saya, itu masih menampilkan pesan kesalahan yang sama. Saya harus menjalankan mongod dengan --dbpath untuk menjalankan perintah mongo tanpa kesalahan.


1

Meskipun jawaban diterima, saya ingin membahas tentang kesalahan jaringan di MongoDB.

Kesalahan jaringan MongoDB

Mengatur masalah penulisan aman bukanlah metode bukti lengkap untuk memastikan bahwa kami aman. Mari kita asumsikan bahwa w=1& j=truesudah diatur, bagaimana jika pengakuan penulisan tidak diterima dari server? Yah, kemungkinannya itu tidak terjadi, tetapi itu mungkin terjadi. Alasan mengapa hal ini mungkin terjadi adalah bahwa ada kesalahan jaringan - ada alasan bahwa kami mungkin tidak menerima tanggapan afirmatif. Jadi, kami dapat mengirim permintaan dari aplikasi melalui driver pilihan bahasa. mongoddapat menyelesaikannya dengan sukses dan kemudian mungkin ada pengaturan ulang TCP, dan jaringan sebenarnya dapat diatur ulang dengan cara yang tidak pernah kami terima responsnya. Jadi, kami bisa mendapatkan kesalahan dan kesalahan, kami mungkin berasumsi bahwa kami mendapat kesalahan. Itu tidak terjadi, tetapi itu mungkin terjadi.

Untuk memasukkan, dimungkinkan untuk mencegahnya. Itu mungkin karena jika kita membiarkan driver membuat _iddan kita melakukan insert - maka kita bisa melakukan itu memasukkan beberapa kali dan itu akan membahayakan. Karena, jika kita melakukan ini 1 st waktu dan kami mendapatkan error dan kami tidak yakin apakah atau tidak itu insert selesai karena kesalahan jaringan, maka kita hanya bisa melakukannya lagi. Dan asalkan kita melakukannya lagi, tyr untuk melakukannya dengan tepat _id. Skenario kasus terburuk adalah kita akan mendapatkan kesalahan kunci duplikat ketika kita mencoba memasukkannya.

Namun, pembaruan adalah tempat terjadinya masalah. Terutama, pembaruan yang bukan merupakan item yang manjur, yang misalnya termasuk $inkperintah. Jadi, kami memberi tahu basis data untuk menambah bidang tertentu. Nah dalam hal itu, jika kita mendapatkan kesalahan jaringan dan kita tidak tahu apakah pembaruan terjadi atau tidak. Sekarang, mungkin kita cukup tahu tentang nilai-nilai yang dapat kita periksa dengan mereka bahwa pembaruan terjadi, dan itu bagus. Tetapi jika kita tidak tahu nilai awal dalam database untuk bidang itu, maka tidak mungkin bagi kita untuk mengetahui apakah itu terjadi atau tidak jika ada kesalahan jaringan. Masalah seperti ini sangat jarang terjadi pada jaringan yang bagus.

Dan jika kita benar-benar perlu menghindarinya dengan cara apa pun, yang perlu kita lakukan adalah mengaktifkan semua pembaruan kita menjadi sisipan, dengan membaca nilai penuh dokumen dari database dan kemudian berpotensi menghapusnya dan memasukkannya lagi atau hanya memasukkannya yang baru.

Alasan mengapa aplikasi dapat menerima kesalahan kembali bahkan jika penulisan berhasil:

  • Koneksi jaringan TCP antara aplikasi dan server diatur ulang setelah server menerima penulisan tetapi sebelum tanggapan dapat dikirim.
  • The MongoDBServer berakhir antara menerima menulis dan menanggapi itu.
  • Jaringan gagal antara waktu penulisan dan waktu klien menerima respons terhadap penulisan.

1

Ini Berfungsi untukku Untuk menghentikan penggunaan mongodb:

use admin
db.shutdownServer()

Dan untuk Restart:

sudo service mongod restart


0

Menambahkan bin ke PATH dalam Variabel Lingkungan membantu.

Jalur Instalasi GOTO dan salin ../bin ke variabel PATH dalam variabel lingkungan di Windows


0

ketik windows + r dan masukkan yang berikut ini

layanan.msc

mulai MongoDB

sekarang ketik "mongo" dalam cmd di jalur masing-masing di mana mongo.exe hadir, itu akan mulai berfungsi.


0

1. Buat folder baru di d drive D: / data / db

2. Buka terminal pada D: / data / db

3. Ketik mongod dan masukkan.

4. Ketikkan mongo dan masukkan.

dan mongodb Anda telah ditulis ............



0

sederhana Run Two memuji

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair 



0

Kesalahan: Tidak dapat terhubung ke server 127.0.0.1:7017

Ini adalah solusi untuk pengguna WINDOWS memasukkan kode di sini 1. Buat direktori:

mkdir c:\mongo\data\db
  1. Instal layanan: pertama buka direktori bin Anda di file program MongoDB dengan cd

mongod.exe --install --logpath

  1. Mulai MongoDB:

    net start MongoDB

4. Mulai Mongo Shell:

`c:\mongo\bin\mongo.exe` or

buka hingga nampan dan masuk mongo

Catatan: Buka terminal dalam mode Administrator


0

Ubuntu 18.04LTS: Masalah muncul ketika saya mencopot sepenuhnya versi saya sebelumnya dan menginstal 4.2.6

Setelah jam googling, saya memecahkan masalah lain

MongoDB Gagal Memulai - *** dibatalkan setelah kegagalan fassert ()

Saya tidak punya harapan tentang masalah tidak dapat terhubung ke server , karena semuanya tampak ok.

Akhirnya, saya memutuskan untuk me-restart sistem operasi dan coba tebak ... BINGO

sudo mongo // works like a charm
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.