在ubuntu16.04上配置soci来连接Oracle、MySQL、PostgreSQL和odbc(连接达梦)

在ubuntu16.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这些每个不同数据库的client端接口,而且都是基于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官网
    • 关键是要 sudo apt-get install libaio1 而不是libaio。
  • 编程解决:
    • 在.zshrc(有的是.bashrc)里配置:export TNS_ADMIN=/opt/oracle/product/11.2.0/dbhome_1/network/admin/这是为了配置连接server的service配置。
    • 配置tnsnames.ora文件,具体含义参考:ORACLE配置,修改tnsnames.ora文件实例 我的配置为这样:ORCL= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=10.108.208.175)(PORT=1521)) ) (CONNECT_DATA= (SERVER=DEDICATED) (SERVICE_NAME=orcl) ) )
    • 代码实例:
  • main.cpp:
   #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!!"<
  • makefile:
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:

步骤:

  • git clone https://github.com/SOCI/soci.git 到某一个目录下
  • 在当前目录下mkdir build 并cd build
  • 执行命令:
    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
  • 上面命令中,系统不能自己找到的path要自己设定,我就是设置不用的数据库为OFF,然后设置oracle的path为OCI的安装路径。
  • 达梦连接数据库是用odbc的,要安装好ODBC和配置好/etc/odbc.ini 和/etc/odbcnst.ini文件
  • 然后在build目录下执行make和 sudo make install就完成了安装

你可能感兴趣的:(环境安装)