sql >> データベース >  >> NoSQL >> MongoDB

WindowsでのMongoDBCドライバーの構築

    Windowsへのlibsasl2の移植が完了していないようです。最終的にlibsaslをコンパイルしましたが、libsasl2は生成されませんでした。 SASLはKerberos用のMongoDBCドライバーによって使用されているようです。 libsasl2ライブラリのポートなしでWindows上のCドライバーでKerberosを動作させようとしたかどうかはわかりません。

    ただし、MongoDBCドライバーを最終的にコンパイルすることができました。最初はC:\ mongo-c-driverなどではなくC:\のサブディレクトリを使用してコンパイルしようとしましたが、うまくいきませんでしたが、ドキュメントのディレクトリ構造を使用してコンパイルすると、コンパイルは成功しました。

    コンパイルするために、コンパイルでSASLライブラリを無効にしました。 Kerberosを使用する必要がない限り、必要になるとは思いません。最初はSASLを明示的に無効にする必要がありました(おそらく64ビットを使用しているため)-これは-DENABLE_SASL=noで実行できます mongo-c-driverをコンパイルするとき。

    手順は次のとおりです。

    このページからドライバーソースを取得しました: https://github.com/mongodb/mongo- c-ドライバー/リリース (1.3.5)

    https://cmake.org/download/ からcmakeを入手しました

    Windowsインストーラーを使用してcmakeをインストールし、すべてのユーザーのパスにcmakeを追加しました。更新するパスを取得するには、ログアウトしてから再度ログインする必要がありました。

    次に、mongo-c-driver-1.3.5ソースをc:\ mongo-c-driver-1.3.5

    にコピーしました。

    次に、

    管理者として実行

    で開始したVisualStudioMSBuildコマンドプロンプトを使用しました
    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".
    

    CコンパイラはVisualStudioの標準インストールではインストールされないことが判明したため、VisualStudioのC++コンポーネントをインストールする必要がありました。 C ++ Common Toolsをインストールしましたが、C++用のMFCやXPサポートはインストールしていません。つまり、3 GBのディスク容量を使用することになります(39.5で始まり、37.0で終わるため、2.5 GBが使用されます)

    インストールしたら:

    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が存在しなかったため、 http://slprowebから32ビットのWin32OpenSSLv1.0.2hを入手しました。 com / products / Win32OpenSSL.html

    次に、OpenSSLをインストールしました。インストールディレクトリをC:\ work \ OpenSSL-Win32に変更し、OpenSSLインストーラーがWindowsシステムディレクトリにバイナリをインストールできるようにしました

    さて、

    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
    

    そして今、mongo-c-driverが構築されました。 Visual C ++で使用して、sslを使用してMongoDBサーバーに接続できます。

    今、私はEmbarcadero RADStudio C++Builderに新しいmongo-c-driverを使用させる方法を理解しようとしています。 .dllをアプリケーションのフォルダにコピーするだけで、bsondllが異常終了します。スタックトレースは次のようになります:



    1. 特定の時間にのみMongoDB検索をクエリする

    2. MongoEngine-別のユーザーがこのデータベースに対してすでに認証されています。最初にログアウトする必要があります

    3. $exprクエリ演算子が配列ドット表記で機能しないようです

    4. Heroku:RQを使用したPythonのバックグラウンドタスク