OceanBase學習之路5|C 應用程式連線 OceanBase 資料庫
OceanBase Connector/C 為基於 C 開發的應用程式提供與 OceanBase 資料庫的連線。本文主要介紹該連線方式的前提條件和操作步驟。
前提條件
-
在安裝使用 OceanBase Connector/C 前請確保設定了基本的資料庫開發環境,要求如下:
-
GCC 版本為 3.4.6 及以上,推薦使用 4.8.5 版本。
-
CMake 版本為 2.8.12 及以上。
-
-
請聯絡技術支援人員獲取 OceanBase Connector/C 安裝包即
libobclient
。
Linux 安裝
-
安裝
libobclient
。sudo rpm -ivh libobclient-xx.x86_64.rpm
-
安裝
obclient
。sudo rpm -ivh obclient-xx.x86_64.rpm
說明
由於
obclient
依賴於libobclient
,所以需要先安裝libobclient
。
從原始碼編譯
OceanBase Connector/C 的 Github 倉庫提供最新開發版本的原始碼。
-
安裝依賴工具。
sudo yum install -y git cmake gcc make openssl-devel ncurses-devel rpm-build gcc-c++ bison bison-devel zlib-devel gnutls-devel libxml2-devel openssl-devel \ libevent-devel libaio-devel
-
從 github 下載 obclient 和 libobclient(即 OceanBase Connector/C)原始碼,地址如下:
-
obclient
: -
libobclient
:
-
-
執行編譯指令碼編譯原始碼,編譯該程式碼會下載子 Module 和 OceanBase Connector/C 的程式碼。
sh build.sh #編譯程式碼
-
打包
libobclient
的 RPM 安裝包(包含 so 和標頭檔案)。cd libmariadb/rpm #進入 libobclient 的打包目錄 sh libobclient-build.sh #打包 libobclient 安裝包
-
打包
obclient
的 RPM 包。cd ../../rpm #進入到 obclient 的打包目錄 sh obclient-build.sh #打包 obclient 安裝包
-
安裝
libobclient
。sudo rpm -ivh libobclient-xx.x86_64.rpm
-
安裝
obclient
。sudo rpm -ivh obclient-xx.x86_64.rpm
說明
由於
obclient
依賴於libobclient
,所以需要先安裝libobclient
。
執行示例
完整的基礎執行示例如下:
mysql_library_init(0, NULL, NULL); MYSQL *mysql = mysql_init(NULL); /* 使用 CLIENT_MULTI_STATEMENTS 選項連線伺服器 */ if (mysql_real_connect (mysql, host_name, user_name, password, db_name, port_num, socket_name, CLIENT_MULTI_STATEMENTS) == NULL) { printf("mysql_real_connect() failed\n"); mysql_close(mysql); mysql_library_end(); exit(1); } /*執行多條語句 */ status = mysql_query(mysql, "DROP TABLE IF EXISTS tbl1;\ CREATE TABLE tbl1(id INT);\ INSERT INTO tbl1 VALUES(110);\ UPDATE tbl1 SET id=120 WHERE id=110;\ SELECT * FROM tbl1;\ DROP TABLE tbl1"); if (status) { printf("Could not execute statement(s)"); mysql_close(mysql); mysql_library_end(); exit(0); } /* 處理每個語句的結果 */ do { /* 當前語句是否返回資料? */ result = mysql_store_result(mysql); if (result) { /* 是的; 則處理行並釋放結果集 */ process_result_set(mysql, result); mysql_free_result(result); } else /* 沒有結果集或報錯 */ { if (mysql_field_count(mysql) == 0) { printf("%lld rows affected\n", mysql_affected_rows(mysql)); } else /* 發生報錯 */ { printf("Could not retrieve result set\n"); break; } } /* 判斷是否有更多結果? -1 表示否,大於 0 表示報錯,等於 0 表示是(即繼續迴圈)*/ if ((status = mysql_next_result(mysql)) > 0) printf("Could not execute statement\n"); } while (status == 0); mysql_close(mysql); mysql_library_end();
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026075/viewspace-2932337/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- OceanBase學習之路8|Java 應用程式連線 OceanBase 資料庫Java資料庫
- OceanBase學習之路6|透過 Obclient 連線 OceanBase 租戶client
- OceanBase學習之路3 |SpringJDBC 連線示例SpringJDBC
- OceanBase學習之路4|SpringBoot 連線示例Spring Boot
- OceanBase學習之路9|連線方式概述
- OceanBase學習之路16|體驗 OceanBase 資料庫熱點行更新能力資料庫
- OceanBase學習之路7|透過 MySQL 客戶端連線 OceanBase 租戶MySql客戶端
- OceanBase學習之路10|C 相關 API 介紹API
- OceanBase學習之路38|如何合併資源池?
- OceanBase學習之路47|什麼是資源管理?
- OceanBase學習之路15|體驗 Operational OLAP
- oceanbase資料庫簡介資料庫
- OceanBase學習之路37|什麼是分裂資源池?
- OceanBase學習之路39|什麼是修改資源池?
- OceanBase學習之路14|體驗並行匯入 & 資料壓縮並行
- 分享:CUDB for OceanBase分散式資料庫產品規模應用分散式資料庫
- OceanBase學習之路45|如何檢視資源單元配置?
- 初探oceanbase和newsql資料庫SQL資料庫
- C#/C++ 透過ODBC連線OceanBase Oracle租戶C#C++Oracle
- OceanBase學習之路13|體驗多租戶特性
- OceanBase學習之路54|如何配置多租戶管理?
- OceanBase學習之路40|如何將資源池分配給租戶?
- OceanBase學習之路42|建立新的資源池的步驟?
- OceanBase學習之路49|最小資源引數配置是什麼?
- oceanbase資料庫比賽總結資料庫
- OceanBase學習之路11|體驗 DDL 新特性(Oracle 模式)Oracle模式
- OceanBase學習之路12|體驗 DDL 新特性(MySQL 模式)MySql模式
- OceanBase學習之路43|如何刪除不再使用的資源單元?
- OceanBase學習之路44|修改資源單元配置有什麼方法??
- OceanBase學習之路41|如何檢視資源池的分佈情況?
- OceanBase學習之路48|最佳效能引數的配置參考
- 《OceanBase 資料庫系統概念》首次釋出,系統精準定義 OceanBase !資料庫
- 用c#建立與資料庫的連線 c#連sqlserverC#資料庫SQLServer
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- C#連線資料庫C#資料庫
- OceanBase學習之路53|多租戶管理引數如何設定?
- 資料庫學習(四)連線查詢資料庫
- 螞蟻金服自研資料庫OceanBase如何登頂TPC-C資料庫