unixODBC的安装与使用(包含如何解决乱码问题)

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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜜友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值