title: unixODBC的安装与使用
date: 2024-10-10 09:49:36
categories:
- 数据库
author: mrzhou
tags: - unixODBC
- mariadb
- oracle
- CentOS
unixODBC的安装与使用
前言
已经好多年没写日志了,最近在一个项目中有需要数据库直接另一数据库的需求,折腾了两天,通过unixODBC解决了,写一下总结,与大家分享一下。
需求
- 项目运行于linux服务器(当前环境为Centos)
- 项目使用的是mariadb数据库;
- 另一数据库为异种数据库,可能是mysql,oracle,Sqlserver等等;
- 曾经因另一异种数据库数据量较小,使用定期同步功能,将数据同步到项目数据库,但现在的环境中目标数据库数据量较大,定期同步都无法在确定时间内完成,所以考虑数据库端能够直接异种数据库以达到不用修改代码即可以实现数据查询的目的。
解决方案
经多方尝试,最后选择unixODBC来实现以上目标。
unixODBC的安装
这一步相对比较简单,如果你的CentOS源比较合适的话,yum可以直接安装,实在水行,也可以到unixODBC官网下载,unixODBC本身是免费的。
yum install -y unixODBC
各种数据库驱动的安装与配置
虽然unixODBC本身是免费的,但各种驱动程序官网虽然提供,但基本是付费的;但各种数据库官网同样提驱动,可以去各数据库官网下载,都是免费的,只是可能需要在各网站有相应账号,注册即可。这里提供本人下载的文件名以供参考。
如果通过yum安装的 unixODBC,会提供odbcinst命令,且默认就安装了两种(PostgreSQL和MySQL)驱动。
通过以下命令查看unixODBC的配置
[root@localhost ~]# 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
[root@localhost ~]#
默认驱动配置
[root@localhost ~]# cat /etc/odbcinst.ini
# Example driver definitions
# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[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
[root@localhost ~]#
安装其他驱动并配置
我从oracle官网下载了以下文件,请注意文件版本一定要配套,sqlplus并不是必须的,只是为了验证odbc配置和查询结果用。
oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm
oracle-instantclient-devel-21.

2504

被折叠的 条评论
为什么被折叠?



