首页 > 生活

ODBC连接主流数据库的配置方法

更新时间:2025-05-17 18:30:57 阅读: 评论:0

准备工作

安装ODBC基本组件:

# yum install -y unixODBC unixODBC-devel

安装完成后可用odbcinst -j命令查看安装配置文件所在的位置,有两个比较常用的配置,一个是ODBC驱动配置,默认在/etc/odbcinst.ini,另一个是系统数据源配置,默认在/etc/odbc.ini。

连接MySQL1. 安装MySQL连接驱动#从你的全世界路过影评 yum install -y mysql-connector-odbc

安装好驱动后,驱动信息会自动追加到驱动配置odbcinst.ini中,像这样:

[MySQL]Description=ODBC for MySQLDriver=/usr/lib/libmyodbc5.soSetup=/usr/lib/libodbcmyS.soDriver64=/usr/lib64/libmyodbc5w.soSetup64=/usr/lib64/libodbcmyS.soFileUsage=12. 配置MySQL数据源(DSN)

数据源可定义在系统DSN中,也可以定义在用户DSN中,视需要而定。以下是一个配置例子。

[mysql223]driver = MySQLserver = 192.1.1.223port = 3306user = rootpassword = 11111111

其中:

driver是MySQL驱动库的名称,要与odbcinst.ini中配的名字一致,另外也可以直接写.so文件的位置,但不推荐这么做。如果配置不指定user和pass怎么打领带word,那么在连接时必须给定,命令行和API都有相应的选项或参数。3. 连接测试

isql命令格式:isql DSN [user [password]] [options]

如果配置指定了用户名和密码,连接时指定DSN即可:isql mysql223。

在连接时指定用户名和密码:isql mysql223 root 62960909。

连接SQLServer1. 安装SQLServer连接驱动# yum install -y freetds freetds-devel

安装好后可用tsql -C查看编译时的选项信息。

如果驱动安装完后没有将驱动信息更新到odbcinst.ini中,则需要手工配置。

[SQLServer]Description = ODBC for SQLServerDriver = /usr/lib/libtdsodbc.soSetup = /usr/lib/libtdsS.soFileUsa水瓶女和天蝎男ge = 1

其中.so文件的路径要与实际安装位置相符。

2. 配置数据源

数据源配置文件为freetds.conf,一般在/etc目录下。以下是个示例:

[sqlsever224]host = 192.1.1.224port = 1433tds version = 7.03. 连接测试# tsql -S sql十三姨server224 -U test -P test123连接Oracle1. 安装驱动

不同版本的Oracle对应驱动版本也不太一样,可到官网下载与数据库版本对应的驱动,至少要安装basic,develop,odbc包,建议安装sqlplus包,便于排障。

# rpm -ivh *.rpm2. 配置环境变量export ORACLE_HOME=/usr/lib/oracle/10.2.0.4/clientexport LD_LIBRARY_PATH=$ORACLE_HOME/lib

注意路径要与实际相符。

3. 测试连通性# sqlplus test/test123@192.1.1.225:1521/orcl

如果连不通,检查客户端与Oracle服务器网络是否连通,另外检查服务器上tnsnames.ora文件中使用的主机名还是IP地址,建议用IP,确保客户端能正常访问。连接成功后再往下配置ODBC。

4. 配置ODBC

在odbcinst.ini中添加Oracle驱动。

[Oracle]Description = ODBC for OracleDriver = /usr/lib/or厄瓜多尔签证acle/10.2.0.4/client/lib/libsqora.so.10.1Setup =

在odbc.ini中配置数据源。

[oracle225]drpaperpass查重iver = Oracleserver = 192.1.1.225port = 1521servername = orcl255

其中servername是tnsnames.ora中配置的SID,而tnsname塑料管道s.ora的位置由TNS_NAMES环境变量指定。

# export TNS_NAMES=/etc# cat /etc/tnsnames.oraorcl255 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = 192.1.1.225) (PORT = 1521)) (CONNECT_DATA 杨澜访谈录王菲= (SERVICE_NAME = ORCL)百乐笔) )

配置好后可用isql命令测试连接。

# isql oracle225 system keyou斑马纹hac连接达梦数据库

达梦数据库是款国产数据库,应用还有待推广。

在Linux环境下通过-i选项进行交互式安装,这里选择自定义安装方式,安装组件选择客户端和ODBC相关驱动,安装完成后即可用客户端工具连接数据库测试。

$ sudo ./DMInstall.bin -i$ /opt/dmdbms/tool/disqlSQL> conn SYSDBA/SYSDBA@192.1.1.190SQL> sele介错人ct * from dmhr.job;

也可以通过uni复联xODBC提供的isql工具连接,但需要配置驱动和数据源。

$ cat /etc/odbcinst.ini[DM7]Description = ODBC DRIVER FOR DM7Driver = /opt/dmdbms/bin/libodbc.so$ cat /etc/odbc.ini[dm190]Description = dmdbDriver = DM7SERVER = 192.1.1.190UID = SYSDBAPWD = SYSDBATCP_PORT = 5236$ isql dm190$ isql dm190 SYSDBA SYSDBAODBC编程

以下是通过ODBC连接mysql数据库并执行sql语句的示例,其他类型数据库类似。

#include <sql.h>#include <sqltypes.h&m1卡宾枪gt;#include <sqlext.h>#include <stdio.h>HENV henv;HDBC hdbc;HSTMT hsmt;SQLRETURN rc;int Success(SQLRETURN ret) { return ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO;}int Failed(SQLRETURN ret) { return !Success(ret);}void ODBCError(SQLSMALLINT handleType, SQLHANDLE handle) { BYTE buf[256], sqlstate[256]; SQLGetDiagRec(handleType, handle, 1, sqlstate, NULL, buf, sizeof(buf), NULL); printf("[%s]%s", sqlstate, buf);}int main() { if (Failed(SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv)))魔兽世界私服 { ODBCError(SQL_HANDLE_ENV, henv); return -1; } SQLSetEnvAttr(henv, SQL_A营销课程TTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER); if (Failed(SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc))) { ODBCError(SQL_HANDLE_DBC, hdbc); return -1; } if (Failed(SQLConnect(hdbc, (SQLCHAR*)"mysql", SQL_NTS, (SQLCHAR*)"root", SQL_NTS, (SQLCHAR*)"123456", SQL_NTS))) { ODBCError(SQL_HANDLE_DBC, hdbc); return -1; } { char user[128], host[128], pass[128]; long cbuser = c语言学习网站0, cbhost = 0, cbpass = 0; if (Failed(SQLAllocStmt(hdbc, &hsmt))) { ODBCError(SQL_HANDLE_STMT, hsmt); 9001 return -1; } SQLExecDirect(hsmt, (SQLCHAR*)"select user, host, password from mysql.user", SQL_NTS); SQLBindCol(hsmt, 1, SQL_C_CHAR, user, sizeof(user), &a左永邦mp;cbuser); SQLBindCol(hsmt, 2, SQL_C_CHAR, host, sizeof(host), &cbhost); SQLBindCol(hsmt, 3, SQL_C_CHAR, pass, sizeof(pass), &cbpass); while (Success(SQLFetchScroll(hsmt, SQL_FETCH_NEXT, 0))) printf("user=[%s], host=[%s], pass=[%s]\n", user, host, pass); } SQLFreeHandle(SQL_HANDLE_STMT, hsmt); SQLDisc流量宝盒onnect(hdbc); gucci价格 SQLFreeHandle(SQL_HANDLE_DBC, hdbc); SQLFreeHandle(SQL_HANDLE_ENV, henv); return 0;}「❤️ 感谢大家」点赞支持下吧,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)欢迎在留言区与我分享你的想法,也欢迎你在留言区记录你的思考过程

本文发布于:2023-06-05 08:50:21,感谢您对本站的认可!

本文链接:http://www.ranqi119.com/ge/85/225654.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:主流   数据库   方法   ODBC
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26|友情:优美诗词|电脑我帮您|扬州装修|369文学|学编程|软件玩家|水木编程|编程频道