2014-05-18 43 views
22

Tôi thiết lập bộ bản sao có xác thực. Tôi đã sử dụng hướng dẫn this. Tôi thiết lập keyfile, người dùng quản trị và những người dùng khác. Tất cả đều hoạt động tốt - truy cập ẩn danh bị tắt và tôi có thể đăng nhậpMongoDB 2.6.1 xác thực dòng lệnh không thành công

$ mongo 
MongoDB shell version: 2.6.1 
connecting to: test 
Error while trying to show server startup warnings: not authorized on admin to execute  command { getLog: "startupWarnings" } 
rs0:PRIMARY> use admin 
switched to db admin 
rs0:PRIMARY> db.auth("USERNAME","PASSWORD") 
1 
rs0:PRIMARY> 

bằng thông tin đăng nhập của người dùng mà tôi đã tạo.

Nhưng tôi không thể đăng nhập từ dòng lệnh

$ mongo -u 'USERNAME' -p 'PASSWORD' 
MongoDB shell version: 2.6.1 
connecting to: test 
2014-05-18T14:23:47.324+0200 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:1210 
exception: login failed 

sử dụng các thông tin tương tự. Tôi đã không tìm thấy bất cứ điều gì hữu ích trong tài liệu hoặc ở đây trên SO.

Trả lời

54

Xác thực trong trình bao được thực hiện trong ví dụ của bạn là chống lại cơ sở dữ liệu quản trị. Dòng lệnh được đăng ở trên không chỉ định cơ sở dữ liệu và do đó xác thực dựa vào cơ sở dữ liệu mặc định là kiểm tra. Hãy thử điều này thay vì để xác thực thông qua dòng lệnh so với đồng quản trị db:

mongo admin -u 'USERNAME' -p 'PASSWORD' 

nếu máy chủ không phải là trên máy chủ địa phương sau đó bạn có thể sử dụng này:

mongo your_host_name:your_port/admin -u 'USERNAME' -p 'PASSWORD' 
+1

yeah, tôi sẽ không hiểu rằng con số ... thanx, nó hoạt động :-) –

+2

Câu hỏi này và câu trả lời xứng đáng nhiều upvotes vì ​​nó không phải là quy định đúng trong các tài liệu Mongo. –

+31

** Không có gì ** được chỉ định đúng trong tài liệu Mongo. – Obscaenvs

0

Có lẽ khác nhau bây giờ vì một bản cập nhật kể từ câu hỏi này ban đầu được trả lời, nhưng xác thực chỉ thành công khi gói tên người dùng/mật khẩu trong dấu ngoặc kép. ví dụ

mongo admin -u "myName" -p "myPassword" 
Các vấn đề liên quan