Linux服务器安装了unixODBC对应的包,建议把unixODBC-devel和unixODBC 一并安装。
1、假如我们有Linux的最大管理员权限。数据源是对于所有用户都可以访问,我们该如何配置呢?
2、假如我们有Linux的最大管理员权限。数据源对于所有用户都可以访问,但是用户名,密码不想让别人知道,如何配置呢?
3、假如我们没有Linux的最大管理员权限,数据源仅仅对于我们的数据库用户访问,该如何配置呢?
安装完unixODBC后,可以通过命令查看
$ odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/dmdba/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
通过上面的命令,我们可以很清晰的看到所涉及到的配置文件及配置文件(“SYSTEM DATA SOURCES”,“USER DATA SOURCES”)的生效顺序。在以上的输出结果中,我们通常只需要关注“DRIVERS”,“SYSTEM DATA SOURCES”,“USER DATA SOURCES”即可。
DRIVERS 系统级别的驱动配置相关信息,只需要配置对应的数据库驱动描述相关即可,无需配置具体的连接信息。
配置内容构成如下(以达梦为例):
$ more /etc/odbcinst.ini
[DM ODBC DRIVER]
Description = ODBC for DM8
Driver = /home/dmdba/dmdbms/bin/libdodbc.so
SYSTEM DATA SOURCES 系统级别的数据源配置信息,涉及到具体的连接信息配置。
配置文件的构成如下:
$ more /etc/odbc.ini
[DM8]
Description = DM ODBC DSN
Driver = DM ODBC DRIVER
UID =
PWD =
SERVER = 10.10.10.10
TCP_PORT = 5236
USER DATA SOURCES 用户级别的数据源配置信息,涉及到具体的连接信息配置。
配置文件构成如下:
$ more .odbc.ini
[DM]
Driver=/home/dmdba/dmdbms/bin/libdodbc.so
Server=localhost
TCP_PORT=5236
从上面的配置文件示例,我们可以看到。当配置了系统级别的驱动信息时,如果要使用它,只需要在Driver中配置系统驱动信息名称即可,而无需配置具体的so文件;反之则需要。通过对以上的理解,想必大家对开始提到的3个问题都有了明确的答案。
如下配置,我们该如何连接呢?
$ more .odbc.ini
[DM]
Driver=/home/dmdba/dmdbms/bin/libdodbc.so
Server=localhost
TCP_PORT=5236
$ isql DM
[ISQL]ERROR: Could not SQLConnect
$ isql DM UID PWD
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
通过以上的简单验证,isql DSN连接时,大家是不是觉得报错不是很明显呢? 那如何才能让他更加明显呢?看下面:
$ isql DM -v
[S1000][unixODBC]用户名或密码错误
[ISQL]ERROR: Could not SQLConnect
以上是我关于ODBC的一些使用分享,欢迎大家讨论,如有不对之处,请指正~
谢谢~
文章
阅读量
获赞
