网站首页 > 技术教程 正文
Linux 平台 通过ODBC访问数据库
这是一个小众的知识点,最近做测试需要使用多种语言访问数据库,其中需要ODBC驱动访问db,这里做个记录。
一 环境准备
- 数据库创建好测试账号 用户名密码
- 安装 Libtool 1.5.10及以上版本以及 unixODBC-develyum install -y libtool unixODBC-devel
- 下载驱动 PolarDB-ODBC_Linux_X86_64.tar.gz
二 配置环境变量
- 安装驱动 解压缩 PolarDB-ODBC_Linux_X86_64.tar.gz 到 一个目录,比如 /usr/local/polardb-odbc/
- 配置环境变量export LD_LIBRARY_PATH = /usr/local/polardb-odbc/lib设置环境变量ODBCINI的路径指向。默认是 /etc/odbcinst.iniexport ODBCINI= /etc/odbcinst.ini export ODBCSYSINI = /etc/
- 配置 odbcinst.ini文件默认该文件内已经有 [PostgreSQL] [MySQL] 两种数据,可以增加如下内容
[POLARDB]
Description = ODBC for POLARDB
Driver = /usr/local/polardb-odbc/lib/unix/polardb-odbc.so
Setup = /usr/local/polardb-odbc/lib/unix/libodbcpolardbS.so
Driver64 = /usr/local/polardb-odbc/lib/unix/polardb-odbc.so
Setup64 =/usr/local/polardb-odbc/lib/unix/libodbcpolardbS.so
Database = test_db
Servername = 10.10.10.5
Password = XXXXXX
Port = 5433
Username = test_user
Trace = yes
TraceFile = /tmp/odbc.log
FileUsage = 1
- 连接PolarDB ,使用 isql -v POLARDB这里的 POLARDB 就是 /etc/odbcinst.ini 文件的配置的 POLARDB 区块儿。
测试成功。
编译
需要修改 TestODBCSample.c 中 connect 函数中的 user参数的值,使用本文开头创建的数据库账号用户名。
#
INCLUDEDIRS = -I../include
#LIBPATHS= -L/usr/local/unixODBC
LIBPATHS= -L/usr/lib64/
LIBS=-lodbc -lodbcinst -lcrypt
CC = gcc
CFLAGS = -Wall -O -g
ALL : Test1 Test2
Test1 : TestODBCSample.c
$(CC) lt; $(CFLAGS) $(INCLUDEDIRS) $(LIBPATHS) $(LIBS) -o Test1
Test2 : ODBCRefcursorSupport.c
$(CC) lt; $(CFLAGS) $(INCLUDEDIRS) $(LIBPATHS) $(LIBS) -o Test2
clean:
rm -rf *.o Test1 Test2
遇到的问题
1.通过odbc 访问连接报错,其实 TestODBCSample.c 里面的connect 函数中的 user参数需要替换为本文开头创建的用户名。
2.编译语法问题
编译C++ 通过ODBC 访问数据库的脚本报错:
Makefile:7: *** missing separator. Stop.
其实这里涉及到 makefile的语法规则,makefile文件禁止乱用 TAB,只有命令所在的行才能且只能以TAB开头,
其他的如,make变量的定义、赋值,make内定函数如(error "strings")都不能以TAB开头,不然make会将其作为命令来处理。
如果排除了TAB用空格代替的问题后、以及由中文“:”等问题后,问题还存在 那么很可能是文件编码格式的问题 查看一下Makefile 文件编码格式是不是utf-8的,还带有BOM标记在文件头
[root@db1 samples]# xxd -l 16 Makefile
0000000: 230a 494e 434c 5544 4544 4952 5320 3d20 #.INCLUDEDIRS =
原文链接:https://mp.weixin.qq.com/s?__biz=MzI4NjExMDA4NQ==&mid=2648456821&idx=1&sn=36a7a1c9a0cbd7af9d015a9b1232ede8
觉得文章不错的朋友麻烦点赞关注转发一手~
猜你喜欢
- 2024-10-18 SOLIDWORKS PDM客户端安装问题总结
- 2024-10-18 2021届中考总复习,圆的知识重难点综合和中考考点归纳总结
- 2024-10-18 SQL Server错误18456:解决方案(sql2008r2错误18456)
- 2024-10-18 老董精心编写-WINCC组态软件生成EXCEL报表详细脚本
- 2024-10-18 一步一步教你,在iFix中如何将数据记录通过ODBC保存到SQL SERVER
- 2024-10-18 SQL学习篇 | 对比Excel Power Query学习SQL
- 2024-10-18 条码软件如何通过ODBC数据源访问SQLServer(二)
- 2024-10-18 Access配置odbc数据源连接ORACLE数据库
- 2024-10-18 GBASE南大通用GBase 8a ODBC的安装文件
- 2024-10-18 oracle怎么通过odbc进行异构库跨连SQL server
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)