Câu hỏi làm thế nào tôi có thể kết nối với một máy chủ mongo từ xa từ thiết bị đầu cuối Mac OS


Tôi muốn thả vào vỏ mongo trong thiết bị đầu cuối trên MacBook của tôi. Tuy nhiên, tôi quan tâm đến việc kết nối với một cá thể Mongo đang chạy trên đám mây (ví dụ compose.io qua addon Heroku). Tôi có tên, mật khẩu, máy chủ, cổng và tên cơ sở dữ liệu từ URI MongoDB:

mongodb://username:password@somewhere.mongolayer.com:10011/my_database

Tôi đã cài đặt mongodb trên MacBook của tôi bằng cách sử dụng Homebrew không phải vì tôi muốn Mongo chạy trên máy Mac của tôi, nhưng chỉ để có được quyền truy cập vào chương trình vỏ mongo để kết nối với cơ sở dữ liệu từ xa này.

Tuy nhiên, tôi không thể tìm thấy đúng lệnh để có được tôi truy cập trình bao đầy đủ tôi muốn. Sử dụng hướng dẫn tìm thấy ở đây http://docs.mongodb.org/manual/reference/program/mongo/ (tìm kiếm cho "từ xa") Tôi có thể nhận được những gì trông giống như một kết nối, nhưng không cho tên người dùng hoặc mật khẩu của tôi tôi không hoàn toàn kết nối. Đang chạy db.auth(username, password) trả về 1 (trái ngược với "auth failed" khi tôi cung cấp tên người dùng và mật khẩu không chính xác), nhưng tôi tiếp tục nhận được thông báo lỗi "trái phép" khi phát hành show dbs chỉ huy.


76
2017-11-08 04:52


gốc




Các câu trả lời:


Có thể bạn đang kết nối tốt nhưng không có đủ đặc quyền để chạy show dbs.

Bạn không cần chạy db.auth nếu bạn vượt qua auth trong dòng lệnh:

mongo somewhere.mongolayer.com:10011/my_database -u username -p password

Khi bạn kết nối, bạn có thể xem các bộ sưu tập không?

> show collections

Nếu tất cả đều tốt và bạn chỉ không có đặc quyền quản trị đối với cơ sở dữ liệu và không thể chạy show dbs


136
2017-11-08 05:24



Tôi có thể kết nối bằng cách sử dụng kỹ thuật bạn mô tả. Tuy nhiên, tôi không thể chạy bất kỳ lệnh nào, chẳng hạn như "hiển thị bộ sưu tập" hoặc "hiển thị người dùng". Tôi muốn nhận được lỗi "không được ủy quyền cho truy vấn trên my_db.system.namespaces". - jononomo
Ok, do đó, Heroku đã ngẫu nhiên đặt tên cho cơ sở dữ liệu mongo của tôi một tên khác với tên tôi đã sử dụng trong dev. Tôi nghĩ đó là vấn đề cơ bản của tôi. - jononomo
Nhưng nếu tôi có? AuthSource = admin cuối cùng. Nó không hoạt động. --authenticationDatabase không giúp được gì. - RomKazanova
27017 là cổng mặc định. chỉ trong trường hợp cổng ví dụ không hoạt động. docs.mongodb.com/manual/reference/default-mongodb-port - change


Với Mongo 3.2 và cao hơn chỉ sử dụng chuỗi kết nối của bạn như sau:

mongo mongodb://username:password@somewhere.mongolayer.com:10011/my_database

35
2017-07-23 09:26



Lưu ý rằng bạn cần mongo shell v3.2 hoặc mới hơn để làm việc này. Xem jira.mongodb.org/browse/SERVER-6233 - Heinrich Filter