2014-11-10 25 views
39

Tôi vừa cài đặt mongoDB trên ubuntu 14.0.4. Tôi đã cố gắng khởi động trình bao nhưng tôi nhận được lỗi kết nối bị từ chối.sudo dịch vụ mongodb khởi động lại cho "lỗi dịch vụ không được công nhận" trong ubuntu 14.0.4

[email protected]:/etc/init.d$ mongo 
MongoDB shell version: 2.6.5 
connecting to: test 
2014-11-10T15:06:28.084-0500 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused 
2014-11-10T15:06:28.085-0500 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146 
exception: connect failed 

Vì vậy, tôi quyết định thử khởi động lại dịch vụ nhưng điều đó cũng không thành công. Tôi nhận được thông báo lỗi sau:

[email protected]:/etc/init.d$ sudo service mongodb restart 
mongodb: unrecognized service 
[email protected]:/etc/init.d$ 

Đây là những gì tôi có trong /var/log/mongodb/mongod.log tôi - http://pastebin.com/MrHt8tce

những gì tôi đã cố gắng cho đến nay:

Tôi tìm thấy một bài đăng khác ở đây: can't start mongodb as sudo đã đưa ra nhận xét về việc xóa tệp khóa mongo.

Tôi đã xóa các tập tin khóa và sau đó thử lại lệnh của tôi, nhưng nó vẫn không như bạn có thể xem dưới đây:

[email protected]:/var/lib/mongodb$ sudo rm mongod.lock 
[email protected]:/var/lib/mongodb$ ls 
journal local.0 local.ns _tmp 

[email protected]:/var/lib/mongodb$ sudo service mongodb start 
mongodb: unrecognized service 

Nhưng tôi có thể bắt đầu sử dụng nó /etc/init.d như bạn có thể xem dưới đây:

[email protected]:/var/lib/mongodb$ sudo /etc/init.d/mongod start 
Rather than invoking init scripts through /etc/init.d, use the service(8) 
utility, e.g. service mongod start 

Since the script you are attempting to invoke has been converted to an 
Upstart job, you may also use the start(8) utility, e.g. start mongod 
mongod start/running, process 27469 
[email protected]:/var/lib/mongodb$ ls 
journal local.0 local.ns mongod.lock 

[email protected]:/var/lib/mongodb$ mongo 
MongoDB shell version: 2.6.5 
connecting to: test 
> db 
test 
> 

Bất kỳ ý tưởng nào về lý do tại sao tôi không thể bắt đầu sử dụng lệnh dịch vụ sẽ được đánh giá cao. Từ những gì tôi đã đọc, tôi nên sử dụng dịch vụ sudo MongoDB

+4

Vấn đề là các kịch bản mới nổi cho MongoDB được loại bị phá vỡ khi nó đi xuống đến _stopping_ mongod, như có vấn đề để xác định PID một cách chính xác. Tôi đã nhận thấy rằng vấn đề, quá và sẽ gửi một bản vá cho nó. Trong khi đó, hãy khởi động lại cá thể mongod của bạn bằng 'sudo killall mongod && sleep 3 && sudo service mongod start'. –

+0

@MarkusWMahlberg bạn nên thêm điều này làm câu trả lời cho câu hỏi vì đây là điều duy nhất giải quyết được vấn đề của tôi! Tính đến tháng 7 năm 2015 nó dường như chưa được sửa! – scaryguy

Trả lời

17

tôi đã cùng lỗi một ngày nào đó Bạn nên sử dụng này:

1.Get tình trạng của dịch vụ Mongo của bạn:

/etc/init.d/mongod status 

hoặc

sudo service mongod status 

2.Nếu nó không phải bắt đầu sửa chữa nó như thế này:

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

Và kiểm tra lại nếu dịch vụ được bắt đầu lại (1)

+4

Không phải của những tác phẩm Nó nói 'bash: /etc/init.d/mongod: Không có tệp hoặc thư mục nào' hoặc 'Dịch vụ không được nhận dạng' – Waqas

+7

trên máy chủ của tôi được gọi là mongodb thay vì mongod vì một lý do nào đó. –

+1

Nếu bạn không có tệp trong /etc/init.d/mongod (hoặc /etc/init.d/mbongod, thì bạn cần phải tạo một tệp. Xem http://stackoverflow.com/a/22336712/249672 – khylo

3

Đối với debian, từ repo 10gen, giữa 2.4.x và 2.6.x, chúng đổi tên init script /etc/init.d/mongodb thành /etc/init.d/mongod và tệp cấu hình mặc định từ/etc/mongodb.conf vào /etc/mongod.conf, và PID và khóa các tập tin từ "mongodb" sang "mongod". Điều này làm cho việc nâng cấp một nỗi đau và tôi không thấy nó được đề cập trong tài liệu của họ ở bất cứ đâu. Dù sao, giải pháp là xóa phiên bản "mongodb" cũ:

update-rc.d -f mongodb remove 
rm /etc/init.d/mongodb 
rm /var/run/mongodb.pid 
diff -ur /etc/mongodb.conf /etc/mongod.conf 

Bây giờ, hãy xem và xem những thay đổi cấu hình bạn cần giữ và đặt chúng trong mongod.conf.

Sau đó:

rm /etc/mongodb.conf 

Bây giờ bạn có thể:

service mongod restart 
5

Bạn cần phải chắc chắn rằng các tập tin (ví dụ /etc/init.d/mongodb.) Có quyền thực thi.

chmod +x /etc/init.d/mongodb 
35

Hãy thử điều này:

Viết mongodb thay vì mongod

sudo service mongodb status 
+1

Lạ lẫm - điều này làm việc cho tôi cũng như mặc dù tài liệu chính thức nói để sử dụng 'mongod' .Bất cứ ai biết tại sao? – bradimus

+0

Phiên bản hoặc nền tảng cụ thể? Tôi cài đặt mongodb 3.2.3 với gói org trên Ubuntu 14, và dịch vụ của tôi là thực sự được gọi là 'mongod' –

+3

nhầm lẫn ở khắp mọi nơi mongod hoặc mongodb !!! –

6

Đối với tôi, giải pháp là để thay thế

service mongod start 

với

start mongod 
1

Đối với tôi không có gì giúp, nhưng sau khi tham khảo ý kiến ​​với devops expirienced Mate Tôi đã kết thúc với giải pháp

tạo /lib/systemd/system/mongod.service tập tin với nội dung

[Unit] 
Description=High-performance, schema-free document-oriented database 
After=network.target 
Documentation=https://docs.mongodb.org/manual 

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

[Install] 
WantedBy=multi-user.target 

sau đó bắt đầu/lệnh dừng nên làm việc

$ sudo service mongod start 

Để tham khảo - Tôi có Ubuntu 14.04 LTS, MongoDB 3.2.9 được cài đặt từ

deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse 
-2

Chỉ cần thử lệnh này.

chmod + x /etc/init.d/mongodb

dịch vụ sudo mongod khởi động lại

Các vấn đề liên quan