达梦数据库以 RDBMS 为核心,以 SQL 为标准,是一个能跨越多种软硬件平台、具有大型数据综合管理能力的、高效稳定的通用数据库管理系统。(本次实验环境以dm7为例)
DM7 提供了多种数据库访问接口,包括 ODBC、JDBC、DPI、OLEDB 以及嵌入方式等。
下面介绍Linux 平台如何配置ODBC 连接DM7 达梦数据库,这里主要讲手工配置DM7 的ODBC 连接。
1、环境说明
- 系统环境:中标麒麟NeoKylin Advance V6.0 x86_64.iso
[[email protected] dm7]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.0 (Santiago)
- 数据库版本:达梦dm7_setup_rh6_64_ent_7.6.0.197_20190917.iso
SQL> select * from v$version;
行号 BANNER
1 DM Database Server x64 V7.6.0.197-Build(2019.09.12-112648)ENT
2 DB Version: 0x7000a
已用时间: 1.828(毫秒). 执行号:383.
- 数据安装目录:/dm7
- 数据实例名:PROD
SQL> select name inst_name from v$instance;
行号 INST_NAME
1 PROD
已用时间: 0.251(毫秒). 执行号:388.
2、安装ODBC
要使用unixODBC2.3.0版本,比它低的版本可能不支持5.0以上linux。
首先查看机器上是否安装了odbc库
[[email protected] dmdba]# rpm -qa|grep odbc
若没安装的话可以通过手工编译安装、rpm包安装、yum源安装的方式进行安装,本次主要介绍手工编译安装方式。
将自行下载的安装包 unixODBC-2.3.0.tar.gz放到/opt目录下,以下为安装过程:
解压缩:
[[email protected] dmdba]# cd /opt/
[[email protected] opt]# tar -zxvf unixODBC-2.3.0.tar.gz
进行安装:
[[email protected] opt]# cd unixODBC-2.3.0
[[email protected] unixODBC-2.3.0]# ./configure
这时候可能会报如下错误:
configure: error: no acceptable C compiler found in $PATH(缺少C编译器)
需要安装gcc环境
[[email protected] unixODBC-2.3.0]# yum -y install gcc (联网环境下使用)
这时候可能又会报如下错误:
Loaded plugins: refresh-packagekit
ftp://nsupdate:[email protected]/NS/6/os/gen/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - "Couldn‘t resolve host ‘ftp.cs2c.com.cn‘"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: nk6-os. Please verify its path and try again
中标麒麟6.0yum源地址不对,频繁报错
进入/etc/yum.repos.d目录 对baseurl进行更新,原操作系统中的地址已经失效,需要更新,新的yum源地址改为如下,将原先的地址注销或者删除。
http://download.cs2c.com.cn/neokylin/server/releases/6.0/x86_64/trusted/
[[email protected] unixODBC-2.3.0]# cd /etc/yum.repos.d
编辑ns6.repo 文件
[[email protected] yum.repos.d]# vim ns6.repo
[nk6-os]
name=NeoKylin Linux Server 6 - Os
#baseurl=ftp://nsupdate:[email protected]/NS/6/os/gen/$basearch/
baseurl=http://download.cs2c.com.cn/neokylin/server/releases/6.0/x86_64/trusted/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neokylin-release
enabled=1
[nk6-updates]
name=NeoKylin Linux Server 6 - Updates
#baseurl=ftp://nsupdate:[email protected]/NS/6/updates/gen/$basearch/
baseurl=http://download.cs2c.com.cn/neokylin/server/releases/6.0/x86_64/trusted/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neokylin-release
enabled=1
[nk6-addons]
name=NeoKylin Linux Server 6 - Addons
#baseurl=ftp://nsupdate:[email protected]/NS/6/addons/gen/$basearch/
baseurl=http://download.cs2c.com.cn/neokylin/server/releases/6.0/x86_64/trusted/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neokylin-release
enabled=0
wq! 保存退出
然后再用 yum -y install gcc(安装过程省略)命令进行安装,即可成功安装gcc环境。
Installed:
gcc.x86_64 0:4.4.7-11.el6.se.01
Complete!
成功安装完gcc环境后,再进入 cd unixODBC-2.3.0目录下继续进行unixODBC的安装(安装过程省略)
[[email protected] unixODBC-2.3.0]# ./configure
[[email protected] unixODBC-2.3.0]# make && make install
安装完成后,测试一下odbcinst –j查看安装信息
[[email protected] unixODBC-2.3.0]# odbcinst -j
unixODBC 2.3.0
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
3、手动配置
成功安装完unixODBC之后,接下来对odbcinst.ini和odbc.ini进行配置
查看dm7数据的驱动文件
[[email protected] unixODBC-2.3.0]# find / -name libdodbc.so
/dm7/bin/libdodbc.so
/dm7/drivers/odbc/libdodbc.so
编辑/usr/local/etc/odbc.ini,输入以下内容
[[email protected] unixODBC-2.3.0]# vim /usr/local/etc/odbc.ini
[dm]
Description = DM ODBC DSN
Driver = DM7 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = dameng123
TCP_PORT = 5236
编辑/usr/local/etc/odbcinst.ini,输入以下内容
[[email protected] unixODBC-2.3.0]# vim /usr/local/etc/odbcinst.ini
[DM7 ODBC DRIVER]
Description = ODBC DRIVER FOR DM7
Driver = /dm7/bin/libdodbc.so
需要注意以下两点:
1) odbc.ini 中的 Driver 内容一定要与 odbcinst.ini 中的达梦驱动定义的节点名称相同。
2) odbc.ini 中的 SERVER 可以输入数据库服务器的 IP地址
通过odbcinst -q -s查看DSN配置情况
[[email protected] unixODBC-2.3.0]# odbcinst -q -s
[dm]
4、验证odbc
配置完成之后,直接在终端运行:isql dm来测试,如果返回以下信息,测说明配置成功。
[[email protected] unixODBC-2.3.0]# isql dm
+---------------------------------------+
Connected! |
---|
sql-statement |
help [tablename] |
quit |
+---------------------------------------+
SQL>
连接成功。
sql语句测试。
SQL> select 1;
+------------+
| 1 |
+------------+
| 1 |
+------------+
SQLRowCount returns 1
1 rows fetched
SQL>
原文地址:https://blog.51cto.com/1534815/2471381