MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Xây dựng trình điều khiển MongoDB C trong Windows

Có vẻ như cổng libsasl2 sang Windows chưa hoàn tất. Mặc dù cuối cùng tôi đã nhận được libsasl để biên dịch, nhưng không có libsasl2 nào được tạo ra. Có vẻ như SASL được sử dụng bởi MongoDB C Driver cho Kerberos. Tôi không biết liệu họ có cố gắng làm cho Kerberos hoạt động với Trình điều khiển C trên Windows mà không có cổng của thư viện libsasl2 hay không.

Tuy nhiên, tôi đã có thể lấy được Trình điều khiển MongoDB C để biên dịch cuối cùng. Ban đầu tôi đã cố gắng biên dịch bằng cách sử dụng các thư mục con của C:\, trái ngược với C:\ mongo-c-driver, v.v., nhưng điều đó không hoạt động tốt, nhưng khi tôi biên dịch bằng cách sử dụng cấu trúc thư mục trong tài liệu, quá trình biên dịch đã thành công.

Để biên dịch, tôi đã tắt thư viện SASL trong phần biên dịch. Tôi không nghĩ rằng nó sẽ cần thiết trừ khi bạn cần sử dụng Kerberos. Ban đầu tôi phải tắt rõ ràng SASL (có lẽ vì sử dụng 64 bit) - điều đó có thể được thực hiện với -DENABLE_SASL=no khi biên dịch mongo-c-driver.

Dưới đây là các bước:

Nhận nguồn trình điều khiển từ trang này: https://github.com/mongodb/mongo- c-driver / bản phát hành (1.3.5)

Nhận cmake từ https://cmake.org/download/

Đã cài đặt cmake bằng trình cài đặt Windows, thêm cmake vào đường dẫn cho tất cả người dùng. Tôi phải đăng xuất và đăng nhập lại để lấy đường dẫn cập nhật.

Sau đó, tôi đã sao chép nguồn mongo-c-driver-1.3.5 sang c:\ mongo-c-driver-1.3.5

Sau đó,

Tôi đã sử dụng Visual Studio MSBuild Command Prompt, bắt đầu với Run As Administrator

C:\mongo-c-driver-1.3.5\src\libbson>cmake -DCMAKE_INSTALL_PREFIX=C:\libmongoc -G "Visual Studio 14"
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:3 (project):
  No CMAKE_C_COMPILER could be found.

CMake Error at CMakeLists.txt:3 (project):
  No CMAKE_CXX_COMPILER could be found.

-- Configuring incomplete, errors occurred!
See also "C:/mongo-c-driver-1.3.5/src/libbson/CMakeFiles/CMakeOutput.log".
See also "C:/mongo-c-driver-1.3.5/src/libbson/CMakeFiles/CMakeError.log".

Hóa ra trình biên dịch C không được cài đặt với cài đặt tiêu chuẩn của Visual Studio, vì vậy tôi đã phải cài đặt thành phần C ++ của Visual Studio. Tôi đã cài đặt C ++ Common Tools, nhưng không phải MFC cho C ++ cũng như Hỗ trợ XP. Điều đó nói rằng nó sẽ sử dụng 3 GB dung lượng đĩa (bắt đầu ở 39,5, kết thúc ở 37,0, vì vậy 2,5 GB đã được sử dụng)

Sau khi cài đặt xong:

cd \mongo-c-driver-1.3.5\src\libbson
cmake -DCMAKE_INSTALL_PREFIX=C:\libmongoc -G "Visual Studio 14" .
msbuild.exe ALL_BUILD.vcxproj
msbuild.exe INSTALL.vcxproj
cd ..\..

C:\mongo-c-driver-1.3.5>cmake -DCMAKE_INSTALL_PREFIX=C:\libmongoc -DENABLE_SSL=WINDOWS -DBSON_ROOT_DIR=C:\libmongoc -G "Visual Studio 14" .
-- The C compiler identification is MSVC 19.0.23026.0
-- The CXX compiler identification is MSVC 19.0.23026.0
-- Check for working C compiler using: Visual Studio 14 2015
-- Check for working C compiler using: Visual Studio 14 2015 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 14 2015
-- Check for working CXX compiler using: Visual Studio 14 2015 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found BSON: C:/libmongoc/lib/bson-1.0.lib;ws2_32
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing:  OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR)
-- Searching for sasl/sasl.h
--   Not found (specify -DCMAKE_INCLUDE_PATH=C:/path/to/sasl/include for SASL support)
-- Searching for libsasl2
--   Not found (specify -DCMAKE_LIBRARY_PATH=C:/path/to/sasl/lib for SASL support)
Current version (from VERSION_CURRENT file): 1.3.5
-- Configuring done
-- Generating done
-- Build files have been written to: C:/mongo-c-driver-1.3.5

OpenSSL không có mặt, vì vậy tôi đã lấy được Win32 OpenSSL v1.0.2h 32 bit từ http:// slproweb. com / products / Win32OpenSSL.html

Sau đó, tôi đã cài đặt OpenSSL. Đã thay đổi thư mục cài đặt thành C:\ work \ OpenSSL-Win32 và tôi đã cho phép trình cài đặt OpenSSL cài đặt các tệp nhị phân vào thư mục hệ thống Windows

Bây giờ,

C:\mongo-c-driver-1.3.5>cmake -DCMAKE_INSTALL_PREFIX=C:\libmongoc -DENABLE_SSL=WINDOWS -DBSON_ROOT_DIR=C:\libmongoc -G "Visual Studio 14" .
-- Found OpenSSL: optimized;C:/work/OpenSSL-Win32/lib/VC/ssleay32MD.lib;debug;C:/work/OpenSSL-Win32/lib/VC/ssleay32MDd.lib;optimized;C:/work/OpenSSL-Win32/lib/VC/libeay32MD.lib;debug;C:/work/OpenSSL-Win32/lib/VC/libeay32MDd.lib (found version "1.0.2h")
-- Searching for sasl/sasl.h
--   Not found (specify -DCMAKE_INCLUDE_PATH=C:/path/to/sasl/include for SASL support)
-- Searching for libsasl2
--   Not found (specify -DCMAKE_LIBRARY_PATH=C:/path/to/sasl/lib for SASL support)
Current version (from VERSION_CURRENT file): 1.3.5
-- Configuring done
-- Generating done
-- Build files have been written to: C:/mongo-c-driver-1.3.5

C:\mongo-c-driver-1.3.5>

msbuild.exe ALL_BUILD.vcxproj
(lots of output, with some yellow warnings, but no red errors)

msbuild.exe INSTALL.vcxproj

Và bây giờ trình điều khiển mongo-c-driver đã được xây dựng. Tôi có thể sử dụng nó với Visual C ++ để kết nối với máy chủ MongoDB của mình bằng ssl.

Bây giờ, tôi đang cố gắng tìm ra cách để Embarcadero RADStudio C ++ Builder sử dụng trình điều khiển mongo-c-mới. Chỉ cần sao chép tệp .dll vào thư mục của ứng dụng dẫn đến việc hủy bỏ tệp bson dll. Dấu vết ngăn xếp trông giống như sau:



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mã hóa MongoDB Data-at-Rest

  2. Cách xóa phần tử thứ n của mảng trong mongodb

  3. Dữ liệu tham chiếu NoSql

  4. Sự cố khớp với MongoDB regex

  5. Đối sánh đường ống tra cứu MongoDB $ của _id không hoạt động