Một trong các phương thức đã cho sẽ thiết lập chuỗi kết nối MongoDB. Định dạng kết nối danh sách hạt giống DNS hoặc định dạng chuỗi kết nối tiêu chuẩn
Định dạng tiêu chuẩn để kết nối chuỗi
Có ba loại triển khai MongoDB cơ bản. độc lập, bộ bản sao và cụm phân mảnh, tất cả đều được mô tả tại đây
Đây là cách điển hình để tham gia URI
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
ví dụ
độc lậpmongodb://mongodb0.example.com:27017Độc lập thực thi kiểm soát truy cập
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=adminbộ bản sao
mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myReplBộ bản sao thực thi kiểm soát truy cập
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myReplcụm phân đoạn
mongodb://mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017Cụm phân mảnh thực thi kiểm soát truy cập
mongodb://myDBReader:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
Các thành phần của một chuỗi kết nối
Các thành phần của chuỗi kết nối URI tiêu chuẩn
- mongodb. // – Tiền tố cần thiết cho biết chuỗi kết nối tiêu chuẩn
- tên tài khoản. password@ – Thông tin đăng nhập xác thực là tùy chọn. Nếu authSource được cung cấp, máy khách sẽ cố gắng xác thực người dùng. Không chỉ định authSource, máy khách sẽ xác minh người dùng dựa trên defaultauthdb. Ngoài ra, cơ sở dữ liệu quản trị được sử dụng nếu không cung cấp defaultauthdb
- máy chủ [. port] – Máy chủ [và tùy chọn là số cổng] mà phiên bản mongod đang hoạt động trên đó [hoặc phiên bản mongos trong trường hợp cụm phân đoạn]. Bạn có thể chỉ định tên máy chủ, địa chỉ IP hoặc ổ cắm trong miền UNIX. Cho biết số lượng máy chủ cần thiết cho cấu trúc liên kết triển khai của bạn.
Trong trường hợp một phiên bản mongod duy nhất, hãy cung cấp tên máy chủ của phiên bản mongod.
Cung cấp [các] tên máy chủ của [các] phiên bản mongod được chỉ định trong cài đặt bộ bản sao cho bộ bản sao.
Cho biết [các] tên máy chủ của cá thể mongos cho một cụm phân đoạn. Không chỉ định số cổng, cổng chung 27017 được sử dụng. - /defaultauthdb – Tùy chọn. Nếu chuỗi kết nối chứa tên người dùng. mật khẩu @ thông tin đăng nhập, nhưng tùy chọn authSource không được cung cấp, cơ sở dữ liệu xác thực được sử dụng. Máy khách sử dụng cơ sở dữ liệu quản trị để xác thực người dùng nếu cả authSource và defaultauthdb đều không được cung cấp
- ? – Optional. Connection-specific parameters are specified in name>=value> pairs in the query string. The list of available choices may be seen in the Connection String Options section. Slash [/] must be included between the host and question mark [?] to begin the options string if no database is specified in the connection string.
Định dạng kết nối cho DNS Seed List
Ngoài ra còn có một danh sách hạt giống do DNS tạo cho các kết nối MongoDB. Việc sử dụng DNS để tạo danh sách các máy chủ có thể truy cập mang lại sự linh hoạt hơn trong triển khai và khả năng chuyển đổi máy chủ theo chu kỳ mà không cần cấu hình lại máy khách
Sử dụng tiền tố mongodb+srv thay vì tiền tố chuỗi kết nối MongoDB thông thường để sử dụng danh sách hạt giống DNS. Để cho người dùng biết rằng tên máy chủ theo sau là bản ghi DNS SRV, hãy sử dụng tiền tố +srv. Sau đó, mongosh hoặc trình điều khiển sẽ truy vấn hệ thống tên miền [DNS] để khám phá máy chủ nào đang thực thi các phiên bản mongod
Ghi chú. Tùy chọn tls [hoặc ssl tương ứng] được đặt thành true nếu biến chuỗi kết nối +srv được sử dụng. Bằng cách chỉ định rõ ràng tùy chọn tls thành false trong chuỗi truy vấn, bạn có thể ghi đè hành vi này và sử dụng tls=false thay thế
Chuỗi kết nối danh sách hạt giống DNS thường trông giống như ví dụ sau
mongodb+srv://server.example.com/
Thiết lập DNS có thể trông như thế này
________số 8Kết nối với các thành viên của danh sách hạt giống cho phép khách hàng truy cập vào thư mục của các thành viên khác trong bộ bản sao để thiết lập kết nối. Máy chủ có thể tạo danh sách máy chủ khác với danh sách hạt giống do khách hàng thường sử dụng bí danh DNS trong danh sách hạt giống của họ. Các thành viên của bộ bản sao chỉ có thể được truy cập thông qua tên máy chủ của họ;
Ghi chú. Các bản ghi SRV được cung cấp bởi tên máy chủ được chỉ định phải có cùng một miền mẹ [ví dụ. com] làm tên máy chủ. Bạn sẽ không được phép kết nối nếu tên miền mẹ và tên máy chủ không khớp
Ngoài ra, các chuỗi kết nối danh sách hạt giống DNS cho phép bạn cung cấp các tham số như một phần của URL giống như cách mà các tham số thông thường thực hiện. Bạn cũng có thể sử dụng bản ghi TXT để biểu thị các cài đặt sau khi sử dụng chuỗi kết nối danh sách hạt giống DNS
authSource replicaSet
Chỉ có thể chỉ định một bản ghi TXT cho mỗi phiên bản mongod. Máy khách sẽ trả về lỗi nếu DNS có nhiều mục nhập TXT hoặc nếu mục nhập TXT chứa một thuộc tính không phải là replicaSet hoặc authSource
Bản ghi TXT cho máy chủ. thí dụ. com sẽ trông như thế này
mongodb://mongodb0.example.com:270170
Chuỗi kết nối này được tạo từ các mục DNS SRV cũng như cài đặt bản ghi TXT như sau
mongodb://mongodb0.example.com:270171
Có thể ghi đè các lựa chọn của bản ghi TXT bằng cách cung cấp tham số chuỗi truy vấn của URL. Chuỗi truy vấn trong tình huống sau sẽ ghi đè tùy chọn authSource được đặt trong bản ghi TXT của mục nhập DNS
mongodb://mongodb0.example.com:270172
Sử dụng ghi đè authSource, chuỗi kết nối điển hình sẽ trông như thế này
mongodb://mongodb0.example.com:270173
Ghi chú. Nếu tên máy chủ được chỉ định trong chuỗi kết nối không có bất kỳ bản ghi DNS nào được liên kết với nó, tham số mongodb+srv sẽ không thành công. Lưu ý cuối cùng, khi sử dụng sửa đổi chuỗi kết nối +srv, tùy chọn sử dụng TLS [hoặc bảo mật SSL tương đương] được đặt thành true cho kết nối. Bằng cách chỉ định rõ ràng tùy chọn tls thành false trong chuỗi truy vấn, bạn có thể ghi đè hành vi này và sử dụng tls=false thay thế
Nhận chuỗi kết nối MongoDB của bạn
Bạn sẽ cần một chuỗi URI để kết nối với MongoDB. Nếu bạn liên kết với một triển khai MongoDB bằng trình điều khiển mongo shell, Compass hoặc MongoDB, bạn sẽ được yêu cầu cung cấp URI [Mã định danh tài nguyên thống nhất]
Giả định rằng bạn đã thiết lập xác thực trong MongoDB và tạo tên người dùng và mật khẩu để đọc và ghi quyền vào cơ sở dữ liệu MongoDB khi sử dụng chuỗi URI được cung cấp
Trong trường hợp này, bạn có thể sử dụng thông tin đăng nhập và mật khẩu mà bạn đã tạo cho vai trò readWriteAnyDatabase cũng như tên cơ sở dữ liệu quản trị trong chuỗi kết nối của bạn để kết nối với MongoDB
Tùy chọn cho chuỗi kết nối
Phần này giải thích các cách khác nhau mà bạn có thể kết nối với Internet
- Ở dạng cặp tên=giá trị, có sẵn các tùy chọn kết nối
- Khi sử dụng trình điều khiển, tên tùy chọn không phân biệt chữ hoa chữ thường
- Tên tùy chọn không phân biệt chữ hoa chữ thường khi sử dụng mongosh hoặc shell mongo truyền thống [phiên bản 4. 2 trở lên]
- Tên tùy chọn phân biệt chữ hoa chữ thường khi sử dụng phiên bản 4. 0 hoặc shell mongo kế thừa cũ hơn
- Trường hợp không bao giờ là một vấn đề khi hiển thị giá trị
Ký tự dấu và [&] có thể phân tách các lựa chọn, chẳng hạn như name1=value1&name2=value2. Các tham số ReplicaSet và connectTimeoutMS được bao gồm trong kết nối sau
mongodb://mongodb0.example.com:270174
Ghi chú. Trình điều khiển hiện chấp nhận dấu chấm phẩy [;] làm dấu tách tùy chọn để duy trì khả năng tương thích với phần mềm cũ hơn
Ví dụ chuỗi kết nối
Bạn sẽ tìm thấy các ví dụ về URI cho các điểm kết nối phổ biến trong các ví dụ bên dưới
Chạy máy chủ cơ sở dữ liệu cục bộCổng mặc định của máy chủ cơ sở dữ liệu cục bộ có thể được sử dụng để thiết lập kết nối bằng lệnh sau
mongodb://mongodb0.example.com:270175Cơ sở dữ liệu hành chính
Để đăng nhập vào cơ sở dữ liệu quản trị dưới dạng foss bằng mật khẩu fosslinux, phải tuân theo các lệnh sau
mongodb://mongodb0.example.com:270176Một cơ sở dữ liệu của hồ sơ
Kết nối và đăng nhập vào cơ sở dữ liệu bản ghi bằng mật khẩu fosslinux với tư cách quản trị viên hệ thống
mongodb://mongodb0.example.com:270177Ổ cắm tên miền trong UNIX
Khi đính kèm vào ổ cắm tên miền UNIX, hãy sử dụng chuỗi kết nối được mã hóa URL
MongoDB liên kết đến một điểm cuối miền UNIX với đường dẫn sau
mongodb://mongodb0.example.com:270178
Ghi chú. tất cả các trình điều khiển không hỗ trợ ổ cắm miền UNIX. Để tìm hiểu thêm về trình điều khiển của bạn, hãy vào phần Tài liệu trình điều khiển
Bản sao được đặt với người dùng trên các máy riêng biệtDưới đây là kết nối tới bản sao hai thành viên được đặt trên db1. thí dụ. mạng và db2. thí dụ. mạng lưới
mongodb://mongodb0.example.com:270179
Ghi chú. [Các] phiên bản mongod được cung cấp trong cấu hình bộ bản sao phải được chỉ định cho bộ bản sao
Bản sao được đặt với người dùng trên máy chủ cục bộCác cổng 27017, 27018 và 27019 được sử dụng để thiết lập kết nối với một bộ bản sao hoạt động trên máy chủ cục bộ
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin0Đọc bộ bản sao phân phối
Kết nối với bộ bản sao gồm ba thành viên và phân phối số lần đọc cho các thành viên phụ yêu cầu phương pháp được liệt kê bên dưới
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin1Bộ bản sao ghi mối quan tâm cấp cao
Kết nối với một bộ bản sao có chứa mối quan tâm ghi và thời gian chờ hai giây trong khi chờ sao chép qua phần lớn các thành viên biểu quyết mang dữ liệu được thực hiện bằng cách sử dụng cấu hình này
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin2Cụm chia sẻ
Có thể kết nối với một cụm phân đoạn đa thể hiện bằng cách sử dụng như sau
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin3Cụm bản đồ MongoDB
Phần sau thiết lập kết nối với cụm MongoDB Atlas bằng thông tin xác thực AWS IAM để xác thực
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin4
Ví dụ này cho thấy cách sử dụng phương thức xác thực MONGODB-AWS và $external authSource để kết nối với Atlas thông qua thông tin đăng nhập AWS IAM
Phải cung cấp giá trị AWS SESSION TOKEN authMechanismProperties nếu bạn đang sử dụng mã thông báo phiên AWS, như sau
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin5
Ghi chú. Miễn là ID khóa truy cập AWS hoặc Khóa truy cập bí mật chứa bất kỳ ký tự nào sau đây. [. / ?
Bạn cũng có thể sử dụng các biến môi trường AWS IAM thông thường để chỉ định các thông tin xác thực này trên nền tảng của mình. Khi sử dụng xác thực MONGODB-AWS, mongosh sẽ kiểm tra và xác định xem có các biến môi trường sau đây hay không
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
6mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
7mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
8
Chuỗi kết nối không cần bao gồm các thông tin đăng nhập này nếu được định cấu hình
Trong bash shell, các biến sau được đặt trong ví dụ sau
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin9
Cú pháp thiết lập các biến môi trường sẽ khác trong các trình bao khác, vì vậy hãy lưu ý điều này. Để biết thêm thông tin, hãy truy cập tài liệu về nền tảng của bạn
Lệnh sau sẽ xác nhận xem các biến môi trường nhất định đã được đặt hay chưa
mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myRepl0
Đoạn mã sau trình bày cách thiết lập kết nối với cụm MongoDB Atlas bằng cách sử dụng các biến được liệt kê bên dưới
mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myRepl1
Đó là tất cả những gì bạn cần biết về chuỗi kết nối trong MongoDB. Chúng tôi hy vọng bạn thấy hướng dẫn bài viết hữu ích. Nếu có, vui lòng để lại nhận xét trong phần bình luận. Cảm ơn vì đã đọc