Lược đồ MongoDB chưa khả dụng

Tôi có nó chạy trên hộp amazon linux ec2. Tôi có thể kết nối qua mongo với máy chủ mongo và tôi có thể tạo lược đồ từ hộp bằng mongodrdl

Nhưng khi tôi cố gắng kết nối từ xa thông qua trình kết nối, tôi gặp lỗi sau

kết nối được chấp nhận từ 108. 20. YYY. XXX. 53793, nhưng không thể khởi tạo. không thể kết nối với MongoDB. không có máy chủ. lựa chọn máy chủ không thành công. vượt quá thời hạn bối cảnh

Tôi đã thử một loạt các cấu hình, tất cả đều đưa ra các lỗi tương tự. Vì vậy, bây giờ tôi đã đơn giản hóa việc thực hiện thành

Chúng tôi đang cố gắng kết nối công cụ BI (QlikView) và MongoDB thông qua trình kết nối cho BI mà chúng tôi đã tải xuống từ www. mongodb. com

1. Chúng tôi đã cài đặt trình kết nối MongoDB cho BI và tạo một tệp lược đồ mới

mongodrdl /h  /u/p /d /o Schema.drdl

2. Sau đó, chúng tôi bắt đầu daemon

mongosqld.exe /schema Schema.drdl /mongo-uri  /addr


2017-04-28T11. 49. 31. 427+0300 TÔI ĐIỀU KHIỂN    [initandlisten] phiên bản mongosqld. v2. 1. 0
28-04-2017T11. 49. 31. 428+0300 TÔI ĐIỀU KHIỂN    [initandlisten] phiên bản git. 518180ba2c547d2cc6071f955d98ec6de730c0c9
2017-04-28T11. 49. 31. 428+0300 TÔI KIỂM SOÁT các đối số    [initandlisten]. --addr 1IPaddress. 3307 --mongo-uri 
2017-04-28T11. 49. 31. 429+0300 TÔI ĐIỀU KHIỂN    [initandlisten] ** CẢNH BÁO. Kiểm soát truy cập không được kích hoạt cho mongosqld.
2017-04-28T11. 49. 31. 430+0300 TÔI ĐIỀU KHIỂN    [initandlisten]
2017-04-28T11. 49. 31. 830+0300 I MẠNG    [initandlisten] đang kết nối với mongodb tại
2017-04-28T11. 49. 31. 832+0300 I MẠNG    [initandlisten] đang chờ kết nối tại IPaddress. 3307

3. Sau đó, QlikView của chúng tôi đã được kết nối với cơ sở dữ liệu và chúng tôi đã cố gắng thực hiện một truy vấn, nhưng thông báo lỗi sau bật lên

Nếu bạn chỉ định một cơ sở dữ liệu hiện có đã được sử dụng trước đây để lưu trữ lược đồ, thì tùy chọn --schemaMode sẽ xác định xem mongosqld có ghi dữ liệu lược đồ mới vào cơ sở dữ liệu đã chỉ định hay chỉ đọc từ nó. Nếu bạn chỉ định cơ sở dữ liệu hiện không tồn tại, bạn phải đặt --schemaMode thành

mongosqld --schemaSource sampleDb --schemaMode auto
1

Lệnh ví dụ sau sử dụng cơ sở dữ liệu có tên

db.getSiblingDB("admin").createUser(  {    user: "",    pwd: "",    roles: [             { "role": "readAnyDatabase", "db": "admin"  },             { "role": "readWrite", "db": ""  }           ]  })
0 để lưu trữ thông tin lược đồ và đặt --schemaMode thành
mongosqld --schemaSource sampleDb --schemaMode auto
1

mongosqld --schemaSource sampleDb --schemaMode auto

Để tìm hiểu thêm về các chế độ lấy mẫu, hãy xem Biểu đồ tham khảo chế độ lấy mẫu

Tái tạo lược đồ

Theo mặc định, mongosqld không tự động lấy mẫu lại dữ liệu sau khi tạo lược đồ. Chỉ định tùy chọn

db.getSiblingDB("admin").createUser(  {    user: "",    pwd: "",    roles: [             { "role": "readAnyDatabase", "db": "admin"  },             { "role": "readWrite", "db": ""  }           ]  })
4 để hướng dẫn mongosqld tự động lấy mẫu lại dữ liệu và tạo lại lược đồ theo một lịch trình cố định

Để bắt buộc cập nhật một lần lược đồ, hãy sử dụng lệnh FLUSH SAMPLE từ máy khách SQL của bạn

Quyền của người dùng đối với các lược đồ liên tục

Nếu phiên bản MongoDB của bạn sử dụng xác thực, bạn phải chỉ định người dùng MongoDB có quyền ghi trên cơ sở dữ liệu lược đồ đã chỉ định ngoài các quyền được mô tả trong phần lấy mẫu được lưu trong bộ nhớ cache

Để tạo một người dùng có các quyền cần thiết để chạy mongosqld với lược đồ được duy trì lâu dài, bạn có thể tạo một vai trò tùy chỉnh với các quyền bắt buộc tối thiểu như được mô tả trong Quyền của người dùng đối với Lấy mẫu được lưu trong bộ nhớ cache hoặc sử dụng công cụ tích hợp sẵn

readAnyDatabase . Trong cả hai trường hợp, người dùng cũng cần có quyền ghi trên cơ sở dữ liệu lược đồ đã chỉ định.

db.getSiblingDB("admin").createUser(  {    user: "",    pwd: "",    roles: [             { "role": "readAnyDatabase", "db": "admin"  },             { "role": "readWrite", "db": ""  }           ]  })

Trong ví dụ sau, người dùng có tên

db.getSiblingDB("admin").createUser(  {    user: "",    pwd: "",    roles: [             { "role": "readAnyDatabase", "db": "admin"  },             { "role": "readWrite", "db": ""  }           ]  })
7 với mật khẩu
db.getSiblingDB("admin").createUser(  {    user: "",    pwd: "",    roles: [             { "role": "readAnyDatabase", "db": "admin"  },             { "role": "readWrite", "db": ""  }           ]  })
8 cung cấp thông tin đăng nhập để đọc và cập nhật cơ sở dữ liệu lược đồ có tên là
db.getSiblingDB("admin").createUser(  {    user: "",    pwd: "",    roles: [             { "role": "readAnyDatabase", "db": "admin"  },             { "role": "readWrite", "db": ""  }           ]  })
9

Lược đồ trong MongoDB là gì?

Lược đồ là gì? . Bạn có thể sử dụng lược đồ BSON của Atlas App Services, mở rộng tiêu chuẩn Lược đồ JSON, để xác định mô hình dữ liệu của ứng dụng và xác thực tài liệu bất cứ khi nào chúng được tạo, thay đổi hoặc xóa. a JSON object that defines the the structure and contents of your data. You can use Atlas App Services' BSON schemas, which extend the JSON Schema standard, to define your application's data model and validate documents whenever they're created, changed, or deleted.

mongosqld là gì?

mongosqld là chương trình Trình kết nối BI kết nối phiên bản MongoDB với công cụ BI của bạn . mongosqld yêu cầu lược đồ dữ liệu ánh xạ tới bộ sưu tập và cơ sở dữ liệu MongoDB của bạn. Bạn có một số tùy chọn để tạo lược đồ và khởi chạy mongosqld. Hướng dẫn này sẽ giúp bạn chọn tùy chọn tốt nhất cho nhu cầu của bạn.

Trình kết nối MongoDB là gì?

Các công cụ kinh doanh thông minh truyền thống được thiết kế để hoạt động với dữ liệu dạng bảng, hàng và cột. Trình kết nối MongoDB cho BI cho phép bạn truy vấn dữ liệu MongoDB bằng SQL bằng các công cụ như Tableau, Power BI và Excel .

MongoDB dùng để làm gì?

MongoDB là cơ sở dữ liệu tài liệu được sử dụng để xây dựng các ứng dụng internet có khả năng mở rộng và khả dụng cao . Với cách tiếp cận lược đồ linh hoạt, nó phổ biến với các nhóm phát triển sử dụng các phương pháp nhanh.