Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目)

这篇具有很好参考价值的文章主要介绍了Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0 代码仓库和视频

0.1 代码仓库

0.2 视频传送

https://www.bilibili.com/video/BV1eQ4y1H7CA/?vd_source=3353f83539e46042d8cf76efb177a8e4

10-Centos7环境下安装配置OCCI-12.2.0.1版本环境

1 启动Centos oracle数据库

  • Linux-CentOS8-Oracle19c 安装详解-含Navicate远程连接配置

  • Navicate远程连接Centos-Oracle19c:ORA-12541: TNS: no listener 无监听错误 - tcping 1521端口关闭

2 Winsows安装配置OCCI库

如何在windows下得到对应的occi的库和头文件

  • 方法一:
  • 从官方下载oracle客户端安装程序并且安装
    • 在对应的安装目录就可以找到头文件和库文件
  • 方法二:
  • 从官方直接下载官方编译好的库和头文件, 部署到window对应的目录下即可
  • 官方提供的库需要和vs的版本对应, 如果版本不对应, 就无法使用
    • 关闭提供的最新的版本支持到 vc14 -> vs2015
      • vs2017 0-> vc14.1

2.1 下载文件

  • 下载地址:
    https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

下载相关文件,都解压缩到instantclient_12_2文件夹下。

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

2.2 VS 配置

2.2.1 VC++包含目录

方法一:使用InstantClient

D:\ProgramData\OCCI_InstantClient\instantclient_12_2\sdk\include

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维
方法二:使用对应Windows平台下Oracle19c的安装目录

C:\Oracle19c\Oracle_19c_db_home\oci\include

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

2.2.2 VC++库目录

方法一:使用InstantClient

D:\ProgramData\OCCI_InstantClient\instantclient_12_2\sdk\lib\msvc\vc14

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维
Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

方法二:使用对应Windows平台下Oracle19c的安装目录

C:\Oracle19c\Oracle_19c_db_home\oci\lib\msvc\vc14

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

2.2.3 连接器-附加依赖项

Debug模式下选择带_d的lib,发布的时候需要改成相应的release不带_d的

oraocci12d.lib

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

2.2.4 代码测试-Oracle11g

2.2.4.1 准备

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

2.2.4.2 代码测试

无,因为环境原因,没有vs2017,代码跑不起来。网课上老师也说跑不起来。

3 Centos安装配置occi库

3.0 强调

一定要用普通用户完成整个过程,不要使用root用户。
否则后期使用普通用户编译程序的时候会找不到头文件和库文件。

3.1 下载instantclient库文件压缩包

下载地址
https://www.oracle.com/database/technologies/instant-client/downloads.html
Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

1. 19.2版本的occi库我不会用,环境不会配,不知道是不是不兼容的原因。

然后换成12.2版可用
Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

3.2 windows上解压

除了版本号,基本都差不多。
Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

3.3 把整个instantclient_12_2文件夹发送到普通用户的目录下

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

3.4 将文件移动到/opt/instantclient_12_2

sudo mv /home/beza/Desktop/instantclient_12_2 /opt/instantclient_12_2

//普通用户进入/opt/instantclient_12_2文件夹
cd /opt/instantclient_12_2

3.4 创建软连接

sudo ln -s libclntsh.so.12.1 libclntsh.so
sudo ln -s libclntshcore.so.12.1 libclntshcore.so
sudo ln -s libocci.so.12.1 libocci.so

sudo ldconfig

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

3.5 配置环境变量

将以下环境变量写入/etc/profile中,对应的路径与上传的文件夹路径一致。

sudo vim /etc/profile

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

# OCCI环境变量的修改
export OCCI_HOME=/opt/instantclient_12_2
export OCCI_INCLUDE_DIR=$OCCI_HOME/sdk/include
export OCCI_LIBRARY_PATH=$OCCI_HOME
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OCCI_LIBRARY_PATH
#程序编译时搜索的库目录
export LIBRARY_PATH=$LIBRARY_PATH:$OCCI_LIBRARY_PATH
#程序编译时搜索的头文件目录
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$OCCI_INCLUDE_DIR

再 source一下,重新加载

source /etc/profile

在普通用户模式下重新配置protobuf的环境,再次新环境变量

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维再 source一下,重新加载

source ~/.bash_profile

留个疑问

为什么我的程序root用户能加载,但是普通用户缺不可以

3.5 测试

Oracle19c在Centos上安装时已经创建用户出c##beza,密码“123456”,和表dept.
Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

3.5.1 源代码

#define _GLIBCXX_USE_CXX11_ABI 0
#include <iostream>
#include <occi.h>
using namespace std;
using namespace oracle::occi;

int main()
{
	// 初始化连接环境
	Environment* env = Environment::createEnvironment();
	// 根据环境对象, 创建一个连接数据库服务器的实例
	// 参数: 用户名->oracle数据库用户名, 密码, 连接串
	// 连接串(oracle服务器地址): IP:端口/实例名
	// 192.168.21.23:1521/orcl
	Connection* conn = env->createConnection("c##beza", "123456", "192.168.111.133:1521/ORCLCDB");
  printf("conn success...\n");
	// 主要的业务逻辑 -> 数据库操作-> 使用sql语句
	// 创建能够操作sql的对象
	Statement* st = conn->createStatement();

	// 给st对象指定要操作的sql语句
	// 假设要查询
	string sql = "select * from dept";
	  printf("before get the result\n");
	// 知识设置, 没有查询
	st->setSQL(sql);
	// 执行sql语句
	// 返回ResultSet对象, 这个类中保存了查询到的结果
	ResultSet* result =  st->executeQuery(); 

	// 遍历结果集, 使用next()
	while (result->next())
	{
		// 将当前记录的字段值取出
		// 看数据库表的设计 -> 需要要知道每个字段对应的数据类型
		// 取值的方法: get数据类型(字段在数据表中的位置[从1开始算]);
		cout << "no: " << result->getInt(1) << ","
			<< "name: " << result->getString(2) << ","
			<< "location: " << result->getString(3) << endl;
	}

	// 关闭查询的结果集 -> 释放资源closeResult
	st->closeResultSet(result);
	  printf("before insert new value\n");
	// 数据库插入
	sql = "insert into dept values(1, 'Beza', 'California')";
	st->setSQL(sql);
	int ret = st->executeUpdate();
	cout << "insert return value: " << ret << endl;

	// 销毁statment对象
	conn->terminateStatement(st);
	// 销毁连接对象
	env->terminateConnection(conn);
	// 释放创建的环境对象
	Environment::terminateEnvironment(env);

	return 0;
}

3.5.2 编译指令

g++ occitest.cpp -locci -lclntsh

3.5.3 结果

Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维
Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目),Linux/Window环境配置相关,数据安全传输基础设置平台项目,linux,c#,运维

4 编译时候的相关报错

4.1 ORA-24960: the attribute OCI_ATTR_USERNAME is greater than the maximum allowable length of 255

原因参考下文:

Oracle19c/OCCI-12.2编译cpp代码报错:ORA-24960:the attribute OCI_ATTR_USERNAME is greater than the maximum

4.2 编译不通过

GCC编译宏_GLIBCXX_USE_CXX11_ABI背景分析和实现原理文章来源地址https://www.toymoban.com/news/detail-717922.html

到了这里,关于Openssl数据安全传输平台014:OCCI环境搭建和使用:Centos8-Oracle19c代码跑通 + Window代码没跑通(不影响本项目)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Openssl数据安全传输平台003:Protobuf-3.17.2的编译与部署:Windows:cmake+VS2022/ Centos7/8: make

    https://github.com/Chufeng-Jiang/OpenSSL_Secure_Data_Transmission_Platform/tree/main/Protobuf 0.2.1 Centos7 https://www.bilibili.com/video/BV1we411R7sS/?vd_source=3353f83539e46042d8cf76efb177a8e4 06-Protobuf在Centos7系统上的安装:版本protobuf3.17.2 0.2.2 windows https://www.bilibili.com/video/BV1rw411X7mY/?spm_id_from=333.999.0.0vd_source=3353f8353

    2024年02月07日
    浏览(49)
  • 如何通过安全数据传输平台,保护核心数据的安全传输?

    在数字化的浪潮中,企业的数据安全传输显得尤为关键。随着网络攻击手段的日益复杂,传统的数据传输方式已不再安全,这就需要我们重视并采取有效的措施,通过安全数据传输平台来保护核心数据。 传统的数据传输面临的主要问题包括: 1.网络带宽限制:企业的网络带宽

    2024年04月28日
    浏览(44)
  • Centos7-安装Oracle11g-图形化+静默配置监听+DB实例+Navicate远程连接+解锁scott/tiger用户+导入Openssl项目所需要的数据+OCCI测试

    本环境搭建主要用于黑马金融数据安全传输平台项目。 https://github.com/Chufeng-Jiang/OpenSSL_Secure_Data_Transmission_Platform 金融数据安全传输平台 https://space.bilibili.com/38600195/channel/seriesdetail?sid=3727139ctype=0 https://www.bilibili.com/video/BV1Uc411f7To/?spm_id_from=333.999.0.0vd_source=3353f83539e46042d8cf76efb17

    2024年01月21日
    浏览(71)
  • 深度学习环境搭建 2 AutoDL服务器配置及Xftp数据传输

    目录 1. 创建基于AutoDL的GPU环境 1. 1 租用实例 1.2  配置环境——激活conda 1.3 根据不同框架和GPU的操作 1.4   jupyter页面更新 1.5 电脑有网的情况下,jupyter显示“未连接成功”的解决办法  2.  安装Xftp 3. Xftp与AutoDL网盘连接 (环境配置可以选择无卡模式,费用低) 1. 算力市场

    2024年02月04日
    浏览(71)
  • 大数据平台环境搭建

            一、Hadoop完全分布式安装配置 1、上传hadoop安装文件 2、修改主机名 3、映射和集群 4、配置yarn和mapreduce 5、集群免密配置 6、启动HDFS、YARN 7、查看页面 二、Spark安装配置 1、上传解压 2、文件配置 3、启动hadoop集群 4、在web界面访问主节点 5、测试spark-shell和spark-sql

    2023年04月13日
    浏览(21)
  • 开源元数据管理平台OpenMetadata开发环境搭建

    开源的元数据管理平台很多。开源元数据管理平台是一种用于收集、存储和管理数据的工具,它们提供了一种可扩展的方式来组织和维护数据的元数据信息。以下是一些常见的开源元数据管理平台: Apache Atlas:Apache Atlas是一个开源的大数据元数据管理和数据治理平台,旨在帮

    2024年02月20日
    浏览(40)
  • 大数据平台环境搭建---- Hive&MySql数据库组件配置

    前置环境 Hadoop集群必须部署完成,如果还没有搭建请先前往Hadoop全分布搭建笔记 程序版本 hive 1.1.0 mysql 5.7.25 mysql-connector-java-5.1.39-bin.jar 资源下载 官网下载: mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar :https://downloads.mysql.com/archives/community/  链接:https://pan.xunlei.com/s/VNoQg4wdxda5by6L8Lvug9e

    2024年01月25日
    浏览(65)
  • linux系统openssl的C++开发环境搭建

    在Linux上进行OpenSSL的C++开发,你需要安装OpenSSL库并且在编译时链接该库。以下是在Linux环境中搭建基础开发环境的步骤: 在终端中执行以下命令来安装OpenSSL开发包: 这将会安装OpenSSL的开发头文件和库文件,使你能够在C++程序中使用OpenSSL功能。 创建一个新的C++源代码文件,

    2024年02月06日
    浏览(45)
  • 搭建Elasticsearch、Kibana和Logstash环境:构建强大的数据分析平台

    “限时免费赠送!人工智能测试开发资料大礼包,把握测试行业的新机遇\\\" 搭建 Elasticsearch、Kibana 和 Logstash(通常被称为 ELK Stack)环境是构建强大的数据分析平台的关键步骤。ELK Stack 提供了一套完整的解决方案,用于收集、存储、搜索、分析和可视化大量的日志数据。下面是

    2024年04月26日
    浏览(46)
  • 数据库安全-第一章 Mysql 安全基础-【web 环境搭建——LAMP-2】(LAMP——apache2环境搭建)

    Apache HTTP 服务器项目致力于为现代操作系统(包括 UNIX 和 Windows)开发和维护开源 HTTP 服务器。该项目的目标是提供一个安全、高效且可扩展的服务器,该服务器提供与当前 HTTP 标准同步的 HTTP 服务。 Apache 软件基金会和 Apache HTTP 服务器项目在2021年6月1日宣布发布 Apache HTTP 服

    2024年02月20日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包