2013-01-20 33 views
22

Tôi đã cài đặt MongoDB sử dụng lệnh Mac Homebrew nhưng khi tôi chạy mongodMongoDB sẽ không bắt đầu

Nó không nhận ra thiết bị đầu cuối của tôi của tôi:/

Nếu tôi gõ vào export PATH=$PATH:/usr/local/mongodb/bin sau đó chạy mongod nó bắt đầu lên nhưng nhanh chóng thoát

mongod --help for help and startup options 
Sun Jan 20 18:59:25 [initandlisten] MongoDB starting : pid=59800 port=27017 dbpath=/data/db/ 64-bit host=Kevin-Tucks-MacBook-Pro.local 
Sun Jan 20 18:59:25 [initandlisten] db version v2.0.4, pdfile version 4.5 
Sun Jan 20 18:59:25 [initandlisten] git version: 329f3c47fe8136c03392c8f0e548506cb21f8ebf 
Sun Jan 20 18:59:25 [initandlisten] build info: Darwin erh2.10gen.cc 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40 
Sun Jan 20 18:59:25 [initandlisten] options: {} 
Sun Jan 20 18:59:25 [initandlisten] journal dir=/data/db/journal 
Sun Jan 20 18:59:25 [initandlisten] recover : no journal files present, no recovery needed 
Sun Jan 20 18:59:25 [initandlisten] preallocateIsFaster=true 2.38 
Sun Jan 20 18:59:25 [websvr] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:28017 
Sun Jan 20 18:59:25 [websvr] ERROR: addr already in use 
Sun Jan 20 18:59:25 [initandlisten] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017 
Sun Jan 20 18:59:25 [initandlisten] ERROR: addr already in use 
Sun Jan 20 18:59:25 [initandlisten] now exiting 
Sun Jan 20 18:59:25 dbexit: 
Sun Jan 20 18:59:25 [initandlisten] shutdown: going to close listening sockets... 
Sun Jan 20 18:59:25 [initandlisten] shutdown: going to flush diaglog... 
Sun Jan 20 18:59:25 [initandlisten] shutdown: going to close sockets... 
Sun Jan 20 18:59:25 [initandlisten] shutdown: waiting for fs preallocator... 
Sun Jan 20 18:59:25 [initandlisten] shutdown: lock for final commit... 
Sun Jan 20 18:59:25 [initandlisten] shutdown: final commit... 
Sun Jan 20 18:59:25 [initandlisten] shutdown: closing all files... 
Sun Jan 20 18:59:25 [initandlisten] closeAllFiles() finished 
Sun Jan 20 18:59:25 [initandlisten] journalCleanup... 
Sun Jan 20 18:59:25 [initandlisten] removeJournalFiles 
Sun Jan 20 18:59:25 [initandlisten] shutdown: removing fs lock... 
Sun Jan 20 18:59:25 dbexit: really exiting now 

tôi đã thử khởi động lại vỏ của tôi, nhưng nếu tôi cố gắng chạy mongod một lần nữa, nó trở lại như không được công nhận và yêu cầu tôi phải nhập lại trong export PATH=$PATH:/usr/local/mongodb/bin.

+1

Một cái gì đó đã sử dụng các cổng, mà mongo muốn sử dụng. Có thể trường hợp mongo trước đó đang chạy. Sử dụng 'netcat' hoặc công cụ tương tự để biết PID của quá trình đó. – madhead

+0

Tôi không phải là rất quen thuộc với netcat nhưng tôi đã thử netstat và im nhận được .. netstat -an | grep 27017 tcp4 0 0 127.0.0.1.27017 *. * LISTEN 84de1dfcd2270d97 stream 0 0 84de1dfcd318fb37 0 0 0 /tmp/mongodb-27017.sock – Keva161

+0

Bạn đã thử khởi động máy khách mongo để kết nối với localhost chưa? Có thể mongod đã bắt đầu và bạn chỉ cần kết nối với nó. –

Trả lời

3

Sun Jan 20 18:59:25 [websvr] ERROR: addr already in use Sun Jan 20 18:59:25 [initandlisten] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017 Sun Jan 20 18:59:25 [initandlisten] ERROR: addr already in use

Dường như Mông Cổ vẫn đang chạy hoặc quá trình khác đang sử dụng cổng 27017

0

Đối mongod không nằm trong PATH của bạn, nó trông giống như logic để hỗ trợ đã được tinh chỉnh một vài lần kể từ phiên bản bạn đang trên. Nếu bạn nâng cấp, sự cố đó có thể được khắc phục tự động.

Như những người khác đã nói, lỗi đó là hiến chỉ ra rằng quá trình khác đang sử dụng các cổng được cấu hình. Một khả năng là trong quá khứ, bạn đã chạy lệnh mà Homebrew trình bày cho bạn để cài đặt MongoDB như một LaunchAgent. Nếu đúng như vậy, lệnh này sẽ hoàn tác, cho phép bạn khởi chạy nó từ dòng lệnh.

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

+0

Tôi đã thử lệnh hat nhưng tôi gặp lỗi 'launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist launchctl: Không thể chỉ định ("/ Users/Keva161/Library/LaunchAgents/homebrew.mxcl.mongodb. plist "): Không có tệp hoặc thư mục nào như vậy không tìm thấy gì để bỏ ' Dường như nó đang chạy máy chủ tự động khi tôi không muốn:/Vẫn còn cách nào để tắt tính năng này? – Keva161

+0

Có vẻ như bạn đã cài đặt Mongo như một dịch vụ, nhưng không phải tại địa điểm đó. Mac OS X không có giao diện người dùng đặc biệt tốt để quản lý LaunchAgents/LaunchDaemons. "man launchctl" sẽ giúp bạn có được cách tiếp cận dòng lệnh. Lingon (hiện tại là $ 5) là một ứng dụng GUI để quản lý chúng giúp dễ dàng hơn nhiều. http://www.peterborgapps.com/lingon/ – davidmc24

4

Tôi chỉ cần cài đặt bia trên OSX (10.9.3), mongod (2.6.1) và có cùng một vấn đề. Không chạy bản sao thứ hai.

$ lsof -i | grep 2701 

không có cổng mở.

Tôi nhận thấy những điều sau đã hữu ích.

Các ghi tập tin cấu hình mặc định brew (/usr/local/etc/mongod.conf) chứa dòng:

bind_ip = 127.0.0.1,<my-machine>.local 

Nếu bạn chỉnh sửa tập tin này và có sự thay đổi một trong các hình sau:

bind_ip = 127.0.0.1 
or 
bind_ip = <my-machine>.local 

Sau đó khởi động lại dịch vụ bằng lệnh bên dưới, nó sẽ khởi động như mong đợi.

$ brew services restart mongodb 

Bạn có thể kiểm tra cho sự thành công hay thất bại bởi tailing logfile trong cửa sổ khác trong khi bắt đầu

$ tail -f /usr/local/var/log/mongodb/mongo.log 

Có vẻ nó đang cố gắng mở cả hai trong những địa chỉ được liệt kê ở đây và cả hai đều quyết tâm 127,0. 0,1 vì vậy chúng tôi luôn luôn có được một thất bại khi nó cố gắng để mở cổng thứ hai và sau đó tắt toàn bộ điều xuống.

73

Kyle: "Dường như Mông Cổ vẫn đang chạy hoặc quá trình khác đang sử dụng cổng 27.017"

Trong trường hợp này, gõ lệnh sau

ps wuax | grep mongo 

Bạn sẽ thấy cái gì đó trông như thế này

User   31936 0.5 0.4 2719784 35624 ?? S  7:34pm 0:09.98 mongod 
User   31945 0.0 0.0 2423368 184 s000 R+ 8:24pm 0:00.00 grep mongo 

Bây giờ nhập lệnh giết cho dụ mongod (31.936 trong trường hợp này):

kill 31936 
+0

Tuyệt vời !!! Điều này làm việc cho tôi. :) –

+1

Đã phải sử dụng "sudo kill pid" – user3681587

+0

Đã sửa lỗi cho tôi :) cảm ơn bạn. – Airwavezx

0

giải pháp này phù hợp với tôi. Tôi đang sử dụng phiên bản 3.2 MongoDB

tôi đặt đường dẫn đến,

/usr/local/bin 

và tôi làm cho MongoDB thư mục dữ liệu đến/data/db phép và thiết lập để myown tài khoản. Điều này tutorial từ mkyong thực sự hữu ích.

0

Đối với bất kỳ của những người đất lên đây, điều này đã được giải quyết (ít nhất là trên hết của tôi) bằng cách ngăn chặn sự đang chạy mongodb dịch vụ:

brew services stop mongodb

và sau đó chạy mongod.

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