Lỗi được báo cáo khi Máy ảo được sử dụng để kết nối với cơ sở dữ liệu MongoDB, không thể thực hiện kết nối và lời nhắc là ngoại lệ. Kết nối thất bại. Tham khảo hình dưới đây để biết lời nhắc cụ thể Show
Phân tích vấn đềNguyên nhân có thể là do liên kết giữa Máy ảo và phiên bản MongoDB bị chặn Xử lý sự cố
Xử lý theo dõiNếu vấn đề vẫn không được giải quyết thông qua các bước nêu trên, vui lòng Gửi Lệnh sản xuất hoặc gọi cho nhân viên dịch vụ khách hàng 400-615-1212 Từ phiên bản trình điều khiển 1. 2, chúng tôi đã giới thiệu một Lớp kết nối mới có cùng tên trên tất cả các trình điều khiển chính thức của chúng tôi. Điều này là để đảm bảo rằng chúng tôi trình bày một mặt trận dễ nhận biết cho tất cả các API của chúng tôi. Điều này không có nghĩa là ứng dụng hiện tại của bạn sẽ bị hỏng, mà đúng hơn là chúng tôi khuyến khích bạn sử dụng api kết nối mới để đơn giản hóa quá trình phát triển ứng dụng của bạn Hơn nữa, lớp kết nối mới MongoClient thừa nhận tất cả các ghi vào MongoDB, trái ngược với lớp kết nối hiện tại Db đã tắt xác nhận. Hãy tham quan các chức năng MongoClient MongoClient = function(server, options); MongoClient.prototype.open MongoClient.prototype.close MongoClient.prototype.db MongoClient.connect Phác thảo ở trên là giao diện MongoClient hoàn chỉnh. Các phương thức mở, đóng và db hoạt động rất giống với các phương thức hiện có trên lớp Db. Sự khác biệt chính là hàm tạo thiếu tên cơ sở dữ liệu từ Db. Hãy hiển thị một kết nối đơn giản bằng cách sử dụng mã mở như một ví dụ về một nghìn từ var MongoClient = require('mongodb').MongoClient , Server = require('mongodb').Server; var mongoClient = new MongoClient(new Server('localhost', 27017)); mongoClient.open(function(err, mongoClient) { var db1 = mongoClient.db("mydb"); mongoClient.close(); }); Lưu ý rằng bạn định cấu hình MongoClient giống như bạn đã thực hiện đối tượng Db. Sự khác biệt chính là bạn truy cập các phiên bản db bằng cách sử dụng phương thức db trên đối tượng MongoClient thay vì sử dụng trực tiếp phiên bản Db như trước đây. MongoClient hỗ trợ các tùy chọn giống như phiên bản Db trước đó mà bạn đã tạo Vì vậy, với một thay đổi tối thiểu trong ứng dụng của chúng tôi, chúng tôi có thể áp dụng mã kết nối MongoClient mới. Nhưng có nhiều và một hướng bạn có thể xem xét trong tương lai. Đó là chuỗi kết nối mongodb Định dạng kết nối URLmongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] Định dạng URL được thống nhất giữa các trình điều khiển chính thức từ 10gen với một số tùy chọn không được hỗ trợ trên một số trình điều khiển vì lý do tự nhiên. Những cái không được hỗ trợ bởi Node. trình điều khiển js bị loại bỏ vì mục đích đơn giản Các phần cơ bản của url
Cấu hình bộ bản sao
Cấu hình kết nối
Cấu hình nhóm kết nối
Viết cấu hình quan tâmThông tin chi tiết hơn về mối quan tâm viết có thể được tìm thấy tại http. //www. mongodb. org/display/DOCS/getLastError+Command
tùy chọn xác thực
đọc tùy chọn
MongoClient. kết nốiĐịnh dạng url có thể được sử dụng với MongoClient. kết nối. Nếu có thể, MongoClient sẽ chọn các giá trị mặc định tốt nhất có thể cho các tùy chọn nhưng chúng có thể bị ghi đè. Điều này bao gồm đặt auto_reconnect thành true và native_parser thành true nếu có. Dưới đây là một số ví dụ về cách kết nối với một máy chủ, một bản sao và một hệ thống phân đoạn bằng MongoClient. kết nối Kết nối máy chủ duy nhấtvar MongoClient = require('mongodb').MongoClient; MongoClient.connect("mongodb://localhost:27017/integration_test", function(err, db) { test.equal(null, err); test.ok(db != null); db.collection("replicaset_mongo_client_collection").update({a:1}, {b:1}, {upsert:true}, function(err, result) { test.equal(null, err); test.equal(1, result); db.close(); test.done(); }); }); Theo mặc định, một bộ bản sao kết nối không sử dụng xác nhận và readPreference cho phụvar MongoClient = require('mongodb').MongoClient; MongoClient.connect("mongodb://localhost:30000,localhost:30001/integration_test_?w=0&readPreference=secondary", function(err, db) { test.equal(null, err); test.ok(db != null); db.collection("replicaset_mongo_client_collection").update({a:1}, {b:1}, {upsert:true}, function(err, result) { test.equal(null, err); test.equal(1, result); db.close(); test.done(); }); }); Theo mặc định, một kết nối được phân đoạn không sử dụng xác nhận và readPreference cho phụvar MongoClient = require('mongodb').MongoClient; MongoClient.connect("mongodb://localhost:50000,localhost:50001/integration_test_?w=0&readPreference=secondary", function(err, db) { test.equal(null, err); test.ok(db != null); db.collection("replicaset_mongo_client_collection").update({a:1}, {b:1}, {upsert:true}, function(err, result) { test.equal(null, err); test.equal(1, result); db.close(); test.done(); }); }); Lưu ý rằng khi kết nối với hệ thống phân mảnh, nó gần như giống với url để kết nối với bản sao. Điều này là do trình điều khiển tự xác định xem đó là một bản sao hay một bộ proxy Mongos mà nó đang kết nối với. Không cần chăm sóc đặc biệt để chỉ định nếu đó là cái này hay cái kia. Điều này trái ngược với việc phải sử dụng các phiên bản ReplSet hoặc Mongos khi sử dụng lệnh mở Tổng hợp kết nối MongoClientNhóm kết nối là bộ nhớ cache của các kết nối cơ sở dữ liệu do trình điều khiển duy trì để có thể sử dụng lại các kết nối khi cần có kết nối mới với cơ sở dữ liệu. Để giảm số lượng nhóm kết nối được tạo bởi ứng dụng của bạn, chúng tôi khuyên bạn nên gọi MongoClient. kết nối một lần và sử dụng lại biến cơ sở dữ liệu được gọi lại var express = require('express'); var mongodb = require('mongodb'); var app = express(); var MongoClient = require('mongodb').MongoClient; var db; // Initialize connection once MongoClient.connect("mongodb://localhost:27017/integration_test", function(err, database) { if(err) throw err; db = database; // Start the application after the database connection is ready app.listen(3000); console.log("Listening on port 3000"); }); // Reuse database object in request handlers app.get("/", function(req, res) { db.collection("replicaset_mongo_client_collection").find({}, function(err, docs) { docs.each(function(err, doc) { if(doc) { console.log(doc); } else { res.end(); } }); }); }); MongoClient. tùy chọn kết nốiChức năng kết nối cũng có một hàm băm các tùy chọn được chia thành db/server/replset/mongos cho phép bạn điều chỉnh các tùy chọn không được định dạng chuỗi url hợp nhất hỗ trợ trực tiếp. Để sử dụng các tùy chọn này, bạn chuyển qua một hàm băm như thế này Tại sao cơ sở dữ liệu MongoDB của tôi không kết nối?Kiểm tra xem bạn có đang sử dụng đúng tên người dùng và mật khẩu cho người dùng cơ sở dữ liệu của mình không và bạn có đang kết nối với đúng cơ sở triển khai cơ sở dữ liệu không . Kiểm tra xem bạn có đang chỉ định đúng cơ sở dữ liệu authSource trong chuỗi kết nối của mình không.
MongoDB có ngừng hoạt động ngay bây giờ không?Không có sự cố nào được báo cáo . Không có sự cố nào được báo cáo. Đã giải quyết - Sự cố này đã được giải quyết. Cập nhật - Chúng tôi đã xác định được sự cố ảnh hưởng đến một nhóm nhỏ người dùng MongoDB Atlas Data Federation và Data Lake.
Tại sao tôi không thể kết nối với cổng 27017?0. 1. 27017 ” là thông báo lỗi chung cho biết máy khách/trình điều khiển của bạn không thể kết nối với máy chủ trên tên máy chủ/IP và cổng đã chỉ định. Trong ví dụ cụ thể này, 127. 0. 0. 1 là tên máy chủ hoặc IP và 27017 là cổng. Kết nối từ máy khách đến máy chủ của bạn bị chặn bởi tường lửa hoặc cấu hình mạng .
Chuỗi kết nối MongoDB của tôi ở đâu?Để lấy chuỗi kết nối cho một cụm Atlas. . Điều hướng đến chế độ xem Cụm Atlas của bạn Nhấp vào Kết nối cho cụm mong muốn của bạn Nhấp vào Kết nối với MongoDB Compass Sao chép chuỗi kết nối được cung cấp |