论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
Nosql
›
使用ODBC连接Sybase ASE数据库
使用ODBC连接Sybase ASE数据库
守听
金牌会员
|
2024-9-9 19:10:16
|
显示全部楼层
|
阅读模式
楼主
主题
996
|
帖子
996
|
积分
2988
使用ODBC连接Sybase ASE数据库
1. 本地连接
1.1 下载驱动管理器
1.1.1 下载驱动管理器
yum install unixODBC.x86_64 -y
复制代码
下载相干的包,解决pyodbc无法使用的问题:
https://github.com/mkleehammer/pyodbc/wiki/Install#installing-on-linux
sudo yum install epel-release -y
sudo yum install python3-pip gcc-c++ python3-devel unixODBC-devel -y
pip3 install --user pyodbc
# 如果如要需要信任证书问题直接禁用即可
pip3 install --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org pyodbc
复制代码
1.1.2 查看安装结果
安装好
unixODBC
驱动管理器后在控制台实行:
(venv) [root@datacheck1 opt]# odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
复制代码
查看相干目录的位置
1.2 设置ASE驱动
查看
DataAccess/ODBC/samples/readme.txt
文件,里面纪录了怎样设置odbc驱动的步骤。
这里主要纪录几个关键点:
64位机ASE驱动位于
DataAccess64/ODBC/lib/libsybdrvodb.so
处,在修改
driver
路径时填这个文件的位置。
cd /opt/sybase/DataAccess/ODBC/samples
cat drivertemplate.txt
[Adaptive Server Enterprise]
Description = Sybase ODBC Driver
Driver = /opt/sybase/DataAccess64/ODBC/lib/libsybdrvodb.so
FileUsage = -1
复制代码
修改完设置文件后实行以下命令
odbcinst -i -d -f drivertemplate.txt
复制代码
如许ASE驱动就会乐成启动,可以在**/etc/odbcinst.ini**文件里查看
1.3 设置ASE数据源
cd /opt/sybase/DataAccess/ODBC/samples
cat sampletemplate.txt
[sampledsn]
Description = SAP ODBC Data Source
UserID = sa
Password = 123456
Driver = Adaptive Server Enterprise
Server = sybase
Port = 5000
Database = master
UseCursor = 1
复制代码
修改完设置文件后实行以下命令
odbcinst -i -s -f sampletemplate.txt
复制代码
数据源会加载到**/root/.odbc.ini**文件处
1.4 实行连接脚本
[sybase@localhost ~]$ cat test.py
import pyodbc
conn = pyodbc.connect(
'DRIVER={Adaptive Server Enterprise};SERVER=sybase;PORT=5000;DATABASE=master;UID=sa;PWD=123456')
print("suceessful")
cursor = conn.cursor()
cursor.execute()
cursor.close()
conn.close()
复制代码
注意这里的设置:
/etc/host文件中:
[sybase@localhost sybase]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.198.162 pg
192.168.198.163 oracle
192.168.198.170 sybase
复制代码
interfaces文件中:
cd /opt/sybase
[sybase@localhost sybase]$ cat interfaces
sybase
master tcp ether 192.168.198.170 5000
query tcp ether 192.168.198.170 5000
sybase_BS
master tcp ether localhost 5001
query tcp ether localhost 5001
SYBASE_XP
master tcp ether localhost 5002
query tcp ether localhost 5002
sybase_JSAGENT
master tcp ether localhost 4900
query tcp ether localhost 4900
复制代码
2. 长途连接
这里提供两种思绪:
下载unixODBC只有再下载ASE的Driver,在根据本地连接一样,设置/etc/odbcinst.ini文件即可。
直接下载带有ASE的Driver的ODBC的rpm包,安装之后再设置/etc/odbcinst.ini文件即可。
两种方式大差不差,如果不知道怎样下载ASE的drive的可以接纳第二种,比较方便快捷。
ODBC下载地址
ODBC Driver for ASE
2.1 下载rpm包
上面已经给出地址,下载后上传到服务器。
(venv-datacheck-2.5.0) [root@localhost soft]# ll
-rw-r--r--. 1 root root 2893948 8月 20 04:59 devart-odbc-ase.x86_64.rpm
复制代码
2.2 安装rpm包
yum install devart-odbc-ase.x86_64.rpm -y
复制代码
2.3 查看安装结果
安装好
unixODBC
驱动管理器后在控制台实行:
(venv-datacheck-2.5.0) [root@localhost soft]# odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
复制代码
查看相干目录的位置
2.4 编辑设置文件
查看/etc/odbcinst.ini和/etc/odbc.ini文件,里面都已经有了模版。按照之前Sbase ASE提供的模版设置即可。
odbc.ini文件:
[sybase]
Description=Sybase ASE Data Source
Driver=Adaptive Server Enterprise
Server=192.168.198.170
Port=5000
UserID=sa
Password=123456
Database=master
UseCursor=1
[ODBC Data Sources]
DEVART_ASE=Devart ODBC Driver for ASE
[DEVART_ASE]
Driver=Devart ODBC Driver for ASE
Data Source=
Port=5000
Database=
User ID=
Password=
复制代码
odbcinst.ini文件:
[PostgreSQL]
Description=ODBC for PostgreSQL
Driver=/usr/lib/psqlodbcw.so
Setup=/usr/lib/libodbcpsqlS.so
Driver64=/usr/lib64/psqlodbcw.so
Setup64=/usr/lib64/libodbcpsqlS.so
FileUsage=1
=# Driver from the mysql-connector-odbc package
=# Setup from the unixODBC package
[MySQL]
Description=ODBC for MySQL
Driver=/usr/lib/libmyodbc5.so
Setup=/usr/lib/libodbcmyS.so
Driver64=/usr/lib64/libmyodbc5.so
Setup64=/usr/lib64/libodbcmyS.so
FileUsage=1
[Adaptive Server Enterprise]
Description=Sybase ODBC Driver
Driver=/usr/local/devart/odbcase/libdevartodbcase.3.4.1.so
FileUsage=-1
UsageCount=1
[ODBC Drivers]
Devart ODBC Driver for ASE=installed
[Devart ODBC Driver for ASE]
Driver=/usr/local/devart/odbcase/libdevartodbcase.3.4.1.so
复制代码
这里的/usr/local/devart/odbcase/libdevartodbcase.3.4.1.so即为ASE的driver位置。
2.5 实行测试脚本
(venv-datacheck-2.5.0) [root@localhost soft]# cat test.py
import pyodbc
# 参考http://bbs.csdn.net/topics/380063945。
conn = pyodbc.connect(
'DRIVER={Adaptive Server Enterprise};SERVER=192.168.198.170;PORT=5000;DATABASE=master;UID=sa;PWD=123456')
print("连接成功")
cursor = conn.cursor()
cursor.execute()
cursor.close()
复制代码
3. 问题解答
3.1 将Sybase的driver拷贝
尝试将sybase本地连接上的driver拷贝过来,但是会一直报一个依赖找不到的错误,发起自行下载一下Driver而不是拷贝过来。
3.2 长途连接一直被拒绝
发起将主机地址和名称到场到/etc/hosts文件中,而且请注意interfaces文件中的数据库实例,在这个实例中大概使用localhost,发起改成主机地址如192.168.198.170或者主机名称sybase,但是在
hosts文件中必须有对应的ip解
析,不然也是被拒绝。下面是修改interfaces文件中的示例:
sybase
master tcp ether 192.168.198.170 5000
query tcp ether 192.168.198.170 5000
sybase
master tcp ether sybase 5000
query tcp ether sybase 5000
复制代码
/etc/hosts文件添加:
192.168.198.162 pg
192.168.198.163 oracle
192.168.198.170 sybase
复制代码
3.3 测试
这里使用的是python脚本,因此需要python3.7以上的情况和pyodbc库,如果使用别的测试也可以不消下载,如可以使用图形化连接工具datagrip测试。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
守听
金牌会员
这个人很懒什么都没写!
楼主热帖
【网络编程】从零开始搭建一个开源博客 ...
Python学习:import的正确用法
Vulnhub靶机-Al-Web-1
报错building for iOS Simulator, but ...
jdbc如何连接sqlserver数据库呢? ...
【CSDN云VS腾讯云】要不然怎么说CSDN开 ...
TCP协议
面试官:BIO、NIO、AIO是什么,他们有 ...
通达OA,长途下令执行漏洞复现 ...
如何成为一名开发人员——第 3 部分: ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
云原生
运维.售后
程序人生
前端开发
快速回复
返回顶部
返回列表