Không thể kết nối với máy chủ 127.0.0.1:27017


160

Tôi nhận được lỗi sau:

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:/$ 

Đây là những gì xảy ra khi tôi cố gắng bắt đầu mongodb:

* Starting database mongodb                                             [fail]

Tôi đã thử mongo --repair

Tôi đã tạo chown và chmod thành var, lib, và data / db và log mongodb.

Không chắc còn gì để làm. Bất kỳ đề xuất?

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

BIÊN TẬP:

Tôi đã gỡ bỏ khóa sau đó đã sửa chữa mongod và gặp lỗi này:

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

Vì vậy, tôi đã làm điều đó với 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

Nhưng vẫn có cùng một vấn đề.


1
Tôi nghĩ rằng liên kết này sẽ giúp bạn stackoverflow.com/questions/9647561/ từ bằng cách thay đổi đường dẫn db của mongo
Med7at

8
sudo service mongod restartlàm việc cho tôi
Sudip Bhandari

Câu trả lời:


31

Nhật ký chỉ ra rằng mongodb đang chấm dứt vì có tệp khóa cũ.

Nếu bạn không và không chạy với nhật ký, hãy xóa tệp khóa, chạy sửa chữa và bắt đầu lại mongodb.

Nếu bạn đang hoặc đang chạy với nhật ký được bật, hãy xem các tài liệu Mongo DB có liên quan . Lưu ý rằng họ nói "Nếu bạn đang chạy với Nhật ký, bạn không nên sửa chữa để khôi phục lại trạng thái nhất quán." Vì vậy, nếu bạn đã viết nhật ký, việc sửa chữa có thể đã làm mọi thứ tồi tệ hơn.


25
Thật tệ khi sửa chữa có thể làm hỏng mọi thứ!
UpTheCux

1
Trong tình huống kích hoạt nhật ký phải làm gì nếu tôi nhận được một kết nối từ chối lỗi rất tự do?
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
chào Nanhe Kumnar đường dẫn ban đầu trong thiết bị đầu cuối là gì. Chúng ta có nên truy cập thư mục cd / usr / local / opt / mongodb / hay không, tôi đang gặp phải vấn đề sau Vijayvir-Singh: ~ vijayvir $ sudo rm /var/lib/mongodb/mongod.lock rm: / var / lib /mongodb/mongod.lock: Không có tệp hoặc thư mục như vậy Vijayvir-Singh: ~ vijayvir $
Vijayvir Sing Pantlia

@vvss trước tiên tìm đường dẫn của tệp. dùng cái này. định vị mongod.lock
Nanhe Kumar

9
Trong phiên bản 2.4.8, nó /data/db/mongod.lockthay vì/var/lib/mongodb/mongod.lock
Loolooii

84

Bạn đã chạy chưa mongod trước khi chạymongo ?

Tôi đã làm theo hướng dẫn cài đặt cho mongodb từ http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ và tôi cũng gặp lỗi tương tự như bạn khi tôi chạy mongotrước khi thực sự chạy quá trình mongo với mongod. Tôi nghĩ cài đặt mongodb cũng sẽ khởi chạy nó nhưng bạn cần khởi chạy thủ công mongodtrước khi bạn làm bất cứ điều gì khác cần mongodb.


10
Đây là vấn đề của tôi. Tôi ngạc nhiên khi điều này không được làm rõ trước trong tài liệu "Bắt đầu với Mongo".
jononomo

Điều này thực sự không có ý nghĩa từ góc độ Trải nghiệm người dùng. mongo.exenên là cái bắt đầu DB.
Moshe Karmel

58

Điều này là do quá trình mongod ngừng hoạt động, bạn phải chạy các lệnh dưới đây để có được quy trình 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

Hy vọng điều này sẽ giúp bạn.


2
Vấn đề được giải quyết. Cảm ơn bạn. Tôi sẽ thêm các lệnh sudo service mongod stopsudo service mongodb stoptrước lệnh đầu tiên vì một số người vẫn có thể chạy chúng.
Georgi Georgiev

1
Nó giúp tôi khởi động lại mongo. tuy nhiên tôi không thể truy cập cơ sở dữ liệu cũ nữa. Bạn có thể vui lòng giúp tôi ra khỏi đây.
Ehsan

13

Thử

sudo service mongodb start

Điều này đã giải quyết vấn đề của tôi.


Sự khác biệt giữa sudo service mongod startsudo service mongodb start
tắc kè

Tôi không chắc lắm nhưng đoán mongodb là tên của dịch vụ và mongod là tên của tệp chương trình.
潘博韜

7

Kiểm tra không gian trống của hệ thống tập tin của bạn và tăng nó nếu nó ít hơn. Điều này cũng có thể khiến mongo không bắt đầu. Kiểm tra tệp /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

Điều này đã xảy ra với tôi và tôi đã thêm smallfiles = true vào tệp /etc/mongod.conf
Carlos

7

Hãy thử chạy mongodtrước mongo.

sudo /usr/sbin/mongod trên openuse của tôi

Điều này đã giải quyết vấn đề của tôi,


6

vì vậy trước tiên bạn phải xóa tệp mongod.lock bằng lệnh bên dưới

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

và sau đó khởi động lại dịch vụ mongo bằng cách ban hành lệnh bên dưới

sudo service mongod restart 

4

Bạn có thể kiểm tra netstat -anp | grep 27017xem cổng có được sử dụng bởi quy trình khác không.


Thật lạ, tôi đã nhận được điều này: alex @ alex-K43U: ~ $ netstat -anp | grep 27017 (Không thể xác định tất cả các quy trình, thông tin quy trình không thuộc sở hữu sẽ không được hiển thị, bạn sẽ phải root để xem tất cả.)
alexchenco

2
Đó là kết quả bình thường khi thực thi với tư cách là người dùng không phải root, vì netstat sẽ chỉ hiển thị các quy trình mà người dùng của bạn được phép xem.
Efren

bạn có thể sử dụng sudo netstat -anp | grep 27017 để vượt qua cảnh báo đó
Wiston Coronell

Điều này làm việc cho tôi, Cảm ơn rất nhiều. Tôi nhận được điều này khi tôi chạy mã đã cho unix 2 [] STREAM 31095 - /tmp/mongodb-27017.sock và tôi đã xóa tệp .sock, bây giờ mọi thứ đều ổn.
Abel

4

Trong windows chạy cmd với tư cách Quản trị viên:

  1. Tạo thư mục:

    mkdir c: \ mongo \ data \ db

  2. Cài đặt dịch vụ:

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

  3. Bắt đầu MongoDB:

    bắt đầu mạng MongoDB

4. Bắt đầu Mongo Shell:

c:\mongo\bin\mongo.exe

Giải pháp này hoạt động tốt với tôi


3

Điều này làm việc cho tôi:

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

3

Để tham khảo trong tương lai, hãy làm theo các bước sau để tránh các lỗi tương tự:

1. Tải xuống MondoDB https://www.mongodb.com/

2.Mở một thiết bị đầu cuối và cd vào thư mục tải xuống của bạn hoặc bất kỳ thư mục nào bạn đã lưu tải xuống mondodb của bạn (Đảm bảo bạn trích xuất thư mục mongodb của mình trước khi bạn cd vào nó)

cd Downloads

3. Di chuyển mongodb đến đường dẫn usr / local của bạn

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

4.cd vào thư mục địa phương của bạn

cd /usr/local/mongodb

5. tạo một thư mục mới

sudo mkdir -p /data/db

6.cd vào thư mục mới vừa tạo ở trên

cd /data/db

7. hoán vị mongo

sudo chown YourMacUserName /data/db

8.Sau đó hãy đi / mở .bash_profile của bạn

Để làm đươc như vậy, hãy tuân theo những bước sau:

Trong một thiết bị đầu cuối mới của bạn

1 . cd 2 .pwd 3 .ls -l

Kiểm tra xem .bash_profile có xuất hiện trong danh sách các tệp trên thiết bị đầu cuối của bạn không

nếu không tạo -bash_profile

Tạo .bash_profile:

Trong thiết bị đầu cuối của bạn

chạm .bash_profile

// bỏ qua bước này nếu bạn đã có .bash_profile

Bước 8:

Tiếp theo trong thiết bị đầu cuối của bạn:

open .bash_profile

Và trong tệp bash của bạn bật mở thêm vào như sau:

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

Và sau đó tiết kiệm . (Lưu tệp hoặc lệnh S / CMD + S)

Bước 9: quay lại thiết bị đầu cuối của bạn :

source .bash_profile

Bây giờ hãy mở hai thiết bị đầu cuối . Một cái sẽ cho mondo daemon của bạn cái kia cho mongo của bạn .

Terminal 1: trong loại thiết bị đầu cuối của bạn: mongod

mongodb

Đầu ra: Nhà ga Mongod

Nhà ga 2:

mongo

Đầu ra: Nhà ga Mongo

Ngoài ra, hãy đảm bảo bạn không mắc lỗi đánh máy sau khi bắt đầu mongod trong terminal: Điều này không chính xác

mongo d

đưa ra lỗi sau : Không thể kết nối với 127.0.0.1:27017, trong (kiểm tra ổ cắm để tìm lỗi sau khi thăm dò ý kiến), lý do: Kết nối bị từ chối

Chính xác:

mongod

(Không nên có khoảng cách giữa các từ mongo và d .. mondod

Cuối cùng, hãy luôn nhớ rằng bạn phải chạy mondod trước khi bạn chạy mongo trên thiết bị đầu cuối của bạn .


2

Tôi đã theo dõi tài liệu tại http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ .

Sau khi cấu hình và khởi động lại, tôi thực hiện sudo service mongod startvà nhận được ... [FAILED].

Cuối cùng, tôi thấy rằng mongodđã bắt đầu. Tôi nghĩ rằng yum installđã thêm nó để tự động bắt đầu.

Để kiểm tra xem bạn mongodcó đang chạy không : service mongod status.

Hy vọng điều này có thể giúp ai đó có vấn đề tương tự.


2

Sau những nỗ lực thường xuyên cuối cùng tôi cũng đã khắc phục được sự cố ...

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

2

Lỗi này có thể do cài đặt IP liên kết của MongoDB. Bạn có thể kiểm tra tệp cấu hình của MongoDB bằng cách

$ sudo vi /etc/mongodb.conf

Trong trường hợp của tôi, IP liên kết được đặt thành địa chỉ mạng nội bộ của máy chủ, như sau:

bind_ip = 10.10.1.14 
#port = 27017

Vì vậy, tôi đã cung cấp cho mongo một tham số IP để kết nối với shell theo loại:

$ mongo 10.10.1.14

Đừng quên khởi động lại dịch vụ mongodb nếu bạn thay đổi cấu hình.


2

Tôi có phiên bản mongo 3.2.1 và phải xóa tệp khóa khỏi /data/db/và sau đó, chạy mongodvà nó bắt đầu thành công.

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


1

Sau khi loại bỏ mongod.lock nằm trong thư mục dữ liệu trong hệ điều hành windows của tôi, nó vẫn hiển thị cùng một thông báo lỗi. Tôi đã phải chạy mongod với --dbpath để làm cho lệnh mongo chạy mà không gặp lỗi.


1

Mặc dù câu trả lời đã nhận được, tôi muốn thảo luận về lỗi mạng MongoDB.

Lỗi mạng MongoDB

Đặt mối quan tâm ghi an toàn không phải là phương pháp chứng minh đầy đủ để đảm bảo rằng chúng tôi an toàn. Giả sử rằng w=1& j=trueđược đặt, nếu xác nhận ghi không nhận được từ máy chủ thì sao? Chà, khả năng là nó đã không xảy ra, nhưng nó có thể đã xảy ra. Lý do tại sao điều này có thể xảy ra là có lỗi mạng - có những lý do mà chúng tôi có thể không nhận được phản hồi khẳng định. Vì vậy, chúng tôi có thể gửi yêu cầu từ ứng dụng thông qua trình điều khiển ngôn ngữ lựa chọn.mongodcó thể hoàn thành thành công và sau đó có thể thiết lập lại TCP và mạng thực sự có thể được đặt lại theo cách mà chúng tôi không bao giờ nhận được phản hồi. Vì vậy, chúng tôi có thể gặp lỗi và về lỗi, chúng tôi có thể cho rằng mình đã gặp lỗi. Nó đã không xảy ra, nhưng nó có thể xảy ra.

Đối với một chèn, nó có thể bảo vệ chống lại nó. Điều đó là có thể bởi vì nếu chúng ta cho phép trình điều khiển tạo _idvà chúng ta thực hiện thao tác chèn - thì chúng ta có thể thực hiện thao tác chèn đó nhiều lần và điều đó sẽ gây hại. Bởi vì, nếu chúng tôi thực hiện lần đầu tiên này và chúng tôi gặp lỗi và chúng tôi không chắc liệu phần chèn đó đã hoàn thành hay chưa vì đó là lỗi mạng, thì chúng tôi có thể làm lại. Và với điều kiện chúng tôi thực hiện lại, tyr để thực hiện chính xác _id. Trường hợp xấu nhất là chúng ta sẽ gặp lỗi khóa trùng lặp khi chúng ta cố gắng chèn nó.

Tuy nhiên, một bản cập nhật là nơi xảy ra sự cố. Đặc biệt, bản cập nhật không phải là mục mạnh, ví dụ như bao gồm một$ink lệnh. Vì vậy, chúng tôi đang nói với cơ sở dữ liệu để tăng một trường nhất định. Trong trường hợp đó, nếu chúng tôi gặp lỗi mạng và chúng tôi không biết liệu bản cập nhật có xảy ra hay không. Bây giờ, có lẽ chúng ta biết đủ về các giá trị mà chúng ta có thể kiểm tra với họ rằng bản cập nhật đã xảy ra, điều này là tốt. Nhưng nếu chúng ta không biết giá trị bắt đầu trong cơ sở dữ liệu cho trường đó, thì chúng ta không thể biết liệu nó có xảy ra hay không trong trường hợp có lỗi mạng. Loại vấn đề này cực kỳ hiếm với một mạng lưới tốt.

Và nếu chúng ta thực sự cần phải tránh nó bằng mọi giá, điều chúng ta cần làm là bật tất cả các cập nhật của mình thành các phần chèn, bằng cách đọc toàn bộ giá trị của tài liệu ra khỏi cơ sở dữ liệu và sau đó có khả năng xóa nó và chèn lại hoặc chỉ cần chèn lại một cái mới.

Những lý do tại sao một ứng dụng có thể nhận được lỗi ngay cả khi việc ghi thành công:

  • Kết nối TCP mạng giữa ứng dụng và máy chủ đã được đặt lại sau khi máy chủ nhận được ghi nhưng trước khi có thể gửi phản hồi.
  • Máy MongoDBchủ chấm dứt giữa việc nhận ghi và trả lời nó.
  • Mạng không thành công giữa thời gian ghi và thời gian máy khách nhận được phản hồi cho ghi.

1

Điều này làm việc cho tôi Để ngăn chặn việc sử dụng mongodb:

use admin
db.shutdownServer()

Và để khởi động lại:

sudo service mongod restart

0

Thêm thùng vào PATH trong Biến môi trường đã giúp.

Đường dẫn cài đặt GOTO và sao chép ../bin sang các biến PATH trong các biến môi trường trong Windows


0

windows + r và nhập thông tin sau

dịch vụ.msc

bắt đầu MongoDB

bây giờ gõ "mongo" trong cmd trong đường dẫn tương ứng có mongo.exe, nó sẽ bắt đầu hoạt động.


0

1. Tạo thư mục mới trong ổ đĩa D: / data / db

2.Mở thiết bị đầu cuối trên D: / data / db

3.Type mongod và nhập.

4. Loại mongo và nhập.

và mongodb của bạn đã lên kế hoạch ............




0

Tôi đã có một lỗi tương tự nhưng nguyên nhân gốc rễ là khác nhau. Sau khi cài đặt mongodb bằng homebrew. https://docs.mongodb.com/manual/installation/ Tôi phải bắt đầu dịch vụ "mongod" trước khi đưa ra lệnh "mongo" trên thiết bị đầu cuối.



0

Err: Không thể kết nối với máy chủ 127.0.0.1:27017

Đây là giải pháp cho người dùng WINDOWS nhập mã tại đây 1. Tạo thư mục:

mkdir c:\mongo\data\db
  1. Cài đặt dịch vụ: đầu tiên hãy vào thư mục bin của bạn trong các tệp chương trình của MongoDB với cd

mongod.exe --install --logpath

  1. Bắt đầu MongoDB:

    net start MongoDB

4. Bắt đầu Mongo Shell:

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

đi đến thùng và nhập mongo

Lưu ý: Mở terminal trong chế độ Quản trị viên


0

Ubuntu 18.04LTS: Sự cố phát sinh khi tôi gỡ cài đặt hoàn toàn phiên bản trước đó và cài đặt 4.2.6

Sau khi googling, tôi đã giải quyết một vấn đề khác

MongoDB không bắt đầu - *** hủy bỏ sau khi thất bại fassert ()

Tôi đã vô vọng về vấn đề không thể kết nối với máy chủ , bởi vì mọi thứ có vẻ ổn.

Cuối cùng, tôi quyết định khởi động lại hệ điều hành và đoán xem ... BINGO

sudo mongo // works like a charm

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.