ubuntu 16.04でsociを設定してOracle、MySQL、PostgreSQL、odbcを接続します(夢に接続)
3081 ワード
ubuntu 16.04でsociを設定してOracle、MySQL、PostgreSQL、odbcを接続します(夢に接続)原理 参照 設置前提 Oracleをインストールする際の煩わしさ: ステップ: げんり
sociはgithub上でC++に基づいて複数のデータベースを接続するオープンソースプロジェクトであり、lisenceはboostと同じである.C++を使用してデータベースに接続すると便利です.
リファレンス
公式サイトには比較的詳細なインストール紹介がありますが、私の実際の経験でインストール過程を記録します.
インストールの前提
ubuntuにインストールされていることを保証します. C++ compiler: GCC, Microsoft Visual C++, LLVM/clang CMake 2.8+ - in order to use build configuration for CMake Boost C++Libraries:DateTime,Fusion,Optional,Preprocessor,Tupleといったコアベースライブラリ.
次に、Oracle、MySQL、PostgreSQL、ODBCの各データベースのクライアント・エンド・インタフェースをインストールし、Cベースで、対応するincludeおよびlibファイルをインストールします. DB2 Call Level Interface (CLI) Firebird client library mysqlclient - C API to MySQL ODBC (Open Database Connectivity) implementation: Microsoft ODBC, iODBC, unixODBC Oracle Call Interface (OCI) libpq - C API to PostgreSQL SQLite 3 library
Oracleをインストールするときは、次のように面倒です.参考oracle公式サイト 重要なのは、libaioではなくsudo apt-get install libaio 1です.
プログラミングの解決: 在.zshrc(あるのは.bashrc)の構成: tnsnamesを構成する.oraファイル、具体的な意味の参考:ORACLEの配置、tnsnamesを修正します.oraファイルの例私の構成はこうです: コード例: main.cpp: makefile:
手順: git clone https://github.com/SOCI/soci.gitディレクトリの下にある 現在のディレクトリの下でmkdir buildおよびcd build 実行コマンド: 上のコマンドでは、システムが自分で見つけたpathを自分で設定することはできません.私は不要なデータベースをOFFにし、oracleのpathをOCIのインストールパスに設定します. ダモン接続データベースはodbcで、ODBCをインストールし、/etc/odbcを構成する.iniおよび/etc/odbcnst.iniファイル その後buildディレクトリの下でmakeとsudo make installを実行すると のインストールが完了します.
sociはgithub上でC++に基づいて複数のデータベースを接続するオープンソースプロジェクトであり、lisenceはboostと同じである.C++を使用してデータベースに接続すると便利です.
リファレンス
公式サイトには比較的詳細なインストール紹介がありますが、私の実際の経験でインストール過程を記録します.
インストールの前提
ubuntuにインストールされていることを保証します.
次に、Oracle、MySQL、PostgreSQL、ODBCの各データベースのクライアント・エンド・インタフェースをインストールし、Cベースで、対応するincludeおよびlibファイルをインストールします.
Oracleをインストールするときは、次のように面倒です.
export TNS_ADMIN=/opt/oracle/product/11.2.0/dbhome_1/network/admin/
これはserverを接続するサービス構成を構成するためです.ORCL= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=10.108.208.175)(PORT=1521)) ) (CONNECT_DATA= (SERVER=DEDICATED) (SERVICE_NAME=orcl) ) )
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
using namespace soci;
int main() {
session sql(oracle,"service=orcl user=iovuser password=iov123");
cout << "has connected!!"<
all: main.cpp
g++ -std=c++11 -Wall -g -o main main.cpp -I/opt/oracle/product/11.2.0/dbhome_1/rdbms/public/ -L/usr/local/lib64/ -lsoci_core -lsoci_oracle -ldl
clean:
手順:
cmake -G "Unix Makefiles" -DWITH_BOOST=ON -DSOCI_TEST=ON -DWITH_ORACLE=ON -DORACLE_INCLUDE_DIR="/opt/oracle/product/11.2.0/dbhome_1/rdbms/public/" -DSOCI_ORACLE=ON -DWITH_DB2=OFF -DWITH_FIERBIRD=OFF -DWITH_SQLITE3=OFF -DPOSTGRESQL_INCLUDE_DIR=/usr/include/postgresql -DORACLE_LIBRARIES=/opt/oracle/instantclient_12_2 ../soci