`
jimmy9495
  • 浏览: 300636 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Linux下的ODBC解决方案

阅读更多

转自:http://industry.ccidnet.com/art/322/20030529/47823_1.html

在一个小型网站开发中,笔者和同事需要共享一个Access 2000数据库。对于使用Windows 2000专业版的同事来说,自然没有什么问题,但是由于笔者使用的是Linux系统,如何连接同事机器上的Access数据库就成了一个问题。以前在Windows下面对这种情况,都是通过ODBC来实现的。ODBC可在很大程度上降低不同系统和数据连接时的复杂度。于是笔者循着ODBC这条路终于找到了解决的办法。

  所需软件

  解决方案使用的是Easysoft(www.Easysoft.com)公司的ODBC-ODBC Bridge(http://www.Easysoft.com/products/2002/main.phtml)。该软件有30天的免费试用期,其实现不同系统之间数据库互联的结构原理在此不详述。遵照页面提示,只需进行简单的注册即可下载该软件。因为ODBC-ODBC Bridge功能强大,可用于很多不同的平台和数据库,所以下载时一定要选择与自己平台对应的软件包。此外,虽然下载页面中给出了客户端应用程序选项,不过并不需要进行选择。由于本例使用的Access数据库位于Windows机器上,所以选择的服务器端是Windows平台,而客户端则是Linux平台。

  软件安装设置

  要想让Linux及其它客户端能够访问Windows服务器上的数据库,首先要在Windows下配置数据源。鉴于读者对这一步应该非常熟悉,因此不再予以说明。下面分别在服务器和客户端进行Easysoft的安装和设置。

  在Windows下运行EasysoftODBC-ODBCBridge1_1_0_0。按照提示,一直点击下一步即可。直到第九步,即“OOB Server Administrator”页面时,要求填写用户名,注意该用户名必须与Windows 2000登录时使用的用户名一致(如administrator等)。然后一直选择默认设置,这时会产生一个Easysoft ODBC-ODBC Bridge的设置界面。对于这些设置不需进行更改,只要把用户名和密码换成Windows下的账号即可。

  下面的设置比较关键,该软件要求在使用前从Easysoft公司处申请一个许可。按照提示填写相关内容,点击“Request License”。接下来,如果机器处于联机状态,可以点击“On-Line Request”。如果不成功,可以选择“E-mail Request”,通过电子邮件申请,收到许可后再导入即可。我们可以看到许可申请成功后的界面。点击“Finish”,服务器端的安装工作完成。

  安装Linux下的客户端软件时,首先切换至下载软件包所在目录,运行如下命令:

$ tar -zxvf odbc-odbc-bridge-1.1.0.0.linux-glibc.tar

  执行该命令后,会在当前目录下生成一个名为odbc-odbc-bridge-1.1.0.0.linux-glibc的目录。切换至该目录,运行./install命令开始安装。安装过程中系统会提示很多问题,前面几步只需接受默认选项,按回车即可。到最后提问是否安装Easysoft ODBC-ODBC Bridge Server时,选择“n”,安装完成。

  要让客户端能够正常运行,根据具体情况需要对/etc/odbc.ini文件进行编辑。下面是笔者的ODBC文件的具体内容:

[test]
Driver		= OOB
SERVER		= 210.31.8.56
PORT		= 8888
TRANSPORT		= tcpip
TARGETDSN		= test 
LOGONUSER		= yiligui
LOGONAUTH		= 12345
TargetUser		= demo
TargetAuth		= Easysoft

  其中相关内容说明如下:

  ◆ [test]是本地数据源的名字;

  ◆ SERVERNAME是Windows计算机的名字或IP地址;

  ◆ TargetDSN是想要连接的Windows系统上的ODBC数据源;

  ◆ LOGONUSER和LOGONAUTH分别是Windows下的用户名和密码;

  其它的选项按默认设置即可。

  系统测试

  安装完成后,进入测试步骤。首先测试服务器上安装,选择开始→程序→Easysoft→ODBC-ODBC Bridge→OOB Web Administrator,如果一切正常WEB Administrator界面会出现。

  在Linux客户端对系统进行测试时,首先切换至/usr/local/Easysoft/unixODBC/bin目录,运行测试命令,代码如下:

# cd /usr/local/Easysoft/unixODBC/bin
# ./isql -v test yiligui 12345

  如果一切正常,会显示如下信息:

+-----------------------------+
| Connected!                 |
|                                       |
| sql-statement             |
| help [tablename]        |
| quit                                |
|                                       |
+-----------------------------+
SQL>

  然后输入SQL命令来对数据库进行操作。首先来查看一下project表中部分字段的内容:

SQL> select id,project_name from project
+------------+-----------------------------+
| id         | project_name                   |
+------------+-----------------------------+
| 1          | 当代侗族的社会变迁        |
| 2          | 汉藏文化交流研究            |
| 3          | 北京市牛街社区研究        |
| 4          |蒙古族宗教文化交流研究 |
| 5          | 藏文新闻学原理                |
......
| 74         |彝族地区旅游开发研究   |
+------------+---------------------------+
74 rows returned
SQL>

  可以看到,上面显示一切正常,在用户表auth中插入一条记录:

SQL> insert into auth values ('1','yiligui','12345')
1 rows affected

再用select语句来查看该表:
SQL> select id,user,password from auth
+------------+-----------+--------+
| id         | user      | password  |
+------------+-----------+--------+
| 1          | yiligui   | 12345     |
+------------+-----------+--------+
1 rows returned

  由上面可以看出,该记录已经插入至数据库中。下面再把该记录删除:

SQL> delete from auth where user='yiligui'
1 rows affected
SQL> select id,user,password from auth
+------------+-----------+--------+
| id         | user      | password  |
+------------+-----------+--------+
+------------+-----------+--------+

  通过使用Insert、Delete、Select等标准语句进行测试,结果显示正常。整个系统已经设置完成,可以轻松地对服务器上的数据库进行操作。

  几个问题

  该例在安装和配置过程中,遇到了几个小问题。在服务器端安装软件过程中,由于笔者上国外网站需要使用代理,致使在线申请无法完成(这是一个亟待改善的问题)。这时可以先继续安装,等安装完成后再通过邮件申请许可,然后再导入即可。导入方法是:选择开始→程序→Easysoft→Easysoft Data Access Licensing→Licence Manager,打开相应界面后按提示进行操作。

  此外,在笔者的测试过程中,在Linux系统中进行数据库连接时提示以下错误:

# ./isql -v test yiligui 12345
[unixODBC][][Easysoft ODBC (Server)]General error: No license slots available
[ISQL]ERROR: Could not SQLConnect

  该错误表明服务器端的软件并没有申请许可。因为许可导入后要重新启动服务才有效,所以对于通过邮件来申请许可的人特别容易碰到这个问题。解决方法很简单,只需选择开始→程序→Easysoft→ODBC-ODBC Bridge→Services,在“服务”管理程序中找到Easysoft ODBC-ODBC Bridge Server,然后重新启动该服务即可。

  结束语

  本文只简单介绍了Easysoft ODBC-ODBC Bridge可以实现的一个最基本的功能。事实上它的功能远不止这些,不仅可以在各版本的Windows平台上使用,更重要的是可以让非Windows平台的操作系统也可以使用ODBC的数据库连接,让数据库管理者可以在Unix、Linux、OpenVMS及Windows下使用ODBC的功能。本例中使用的是Windows服务器/Linux客户端模式,实际中根据需要各操作系统平台都可以作为服务器和客户端。此外,该软件支持的数据库也比较广泛。

  第三方程序设计语言、工具和应用程序也可以轻松实现与ODBC-ODBC Bridge的整合。在其提供的帮助文档中,介绍了与C语言、Apache/PHP、Perl、StarOffice等整合的方法。具体内容可查看http://www.Easysoft.com/products/2002/man/index.html。

  既然要在工作中使用它,技术支持就显得尤为重要。从网站上得知试用版本的ODBC-ODBC Bridge有30天的免费技术支持时间,为了验证其响应时间,笔者就一些相关问题通过电子邮件(support@Easysoft.com)发出了询问,结果很快得到了答复,并且回答得非常仔细。此外,Easysoft.com提供的无论是在线的还是可供下载的文档都非常规范、完尚,基本上涉及到了用户使用过程中可能遇到的所有问题。

  总之,在不同平台之间(尤其是非Windows平台)进行共享数据库的连接和开发时,使用ODDBC-ODDBC Bridge可以大大减轻用户和开发人员的工作量。有类似需求的读者不妨一试。

1
2
分享到:
评论

相关推荐

    Linux下的ODBC解决方案.pdf

    "Linux下的ODBC解决方案" 一、ODBC概述 ODBC(Open Database Connectivity)是一种开放式的数据库连接标准,它允许不同的数据库管理系统(DBMS)和应用程序之间进行交互。ODBC提供了一种统一的接口,使得开发人员...

    在Linux和WINDOWS下通过ODBC访问Oracle和SQL Server数据库的解决方案

    本篇文章将深入探讨如何在Linux和Windows操作系统下,通过ODBC(Open Database Connectivity)来访问Oracle和SQL Server这两种常见的关系型数据库。 首先,ODBC是一种标准的数据库访问接口,它允许应用程序通过一个...

    linux_java.rar_linux odbc测试

    然而,值得注意的是,虽然JDBC-ODBC桥是一种便捷的解决方案,但它可能会导致性能问题,因为它涉及额外的转换层。因此,对于大多数现代数据库,建议直接使用数据库供应商提供的JDBC驱动,而不是通过ODBC。例如,对于...

    LinuxUnix下ODBC的安装、配置与编程.doc

    ### Linux/Unix下ODBC的安装、配置与编程详析 #### ODBC基本原理与功能 ...通过掌握ODBC的原理与实践,开发人员能够在Linux/Unix环境下构建更加灵活、可扩展的数据访问解决方案,有效应对复杂多变的数据库需求。

    Linux/Unix下ODBC的安装、配置与编程

    在Linux/Unix环境下,虽然不像Windows那样广泛使用ODBC,但也有相应的解决方案,比如unixODBC。unixODBC是一个开源的ODBC实现,它提供了类似Windows下的ODBC功能,使得开发者能够在Linux/Unix系统上编写与数据库无关...

    Golang的odbc驱动

    在描述中提到的方法是解决这个问题的一种方案:首先,你需要从可靠的源下载`code.google.com/p/odbc`的源代码压缩包。一旦下载完成,将压缩包解压到你的Golang项目的`src`目录下。`src`目录是Go项目中存放第三方库...

    tdodbc linux客户端

    Teradata是全球知名的大型数据仓库解决方案提供商,而ODBC(Open Database Connectivity)是微软提出的一种数据库访问标准,它提供了一种统一的接口,使得应用程序可以访问多种不同类型的数据库。"tdodbc" 是...

    linux qt 链接 sql 2005程序完整解决方案

    这个"linux qt 链接 sql 2005程序完整解决方案"提供了一个全面的指南,涵盖了从配置环境到编写代码的所有步骤,旨在解决开发者在实际操作中可能遇到的问题。 首先,你需要在Linux系统上安装必要的库。Qt是一个跨...

    sqlite3 驱动 for odbc

    它以其简单、高效和可移植性著称,适用于那些需要简单数据库解决方案但又不想引入大型数据库系统的项目。ODBC(Open Database Connectivity)是微软开发的一种数据库访问标准,允许应用程序通过统一接口与多种数据库...

    ds_odbc_linux_unix.pdf

    Neoview是SAP的一款高性能数据仓库解决方案,配置其ODBC数据源需确保环境变量正确设置,并且驱动程序兼容目标操作系统。 #### 3. Teradata ODBC配置 Teradata是一款大型数据仓库系统,配置其ODBC数据源时,需关注...

    nodejs_odbc_demo.zip

    本示例“nodejs_odbc_demo.zip”提供了使用Node.js通过ODBC连接数据库的解决方案。 在Node.js中,我们可以使用如`node-odbc`或`odbc`等第三方模块来实现ODBC连接。这些模块提供了与ODBC驱动程序交互的API,从而能够...

    ds_odbc_linux_unix基础知识.pdf

    1. **SAP BusinessObjects Data Services**:这是一个全面的数据管理解决方案,提供数据集成、数据质量、主数据管理和实时数据服务。它帮助企业实现数据转换、清洗、加载和监控,以支持业务智能和分析。 2. **ODBC...

    sybase 11 odbc驱动

    因此,在使用这种老版本驱动时,应评估潜在的风险,并考虑升级到更现代的数据库解决方案,例如Sybase ASE的后续版本或其他流行的关系型数据库管理系统,如MySQL、PostgreSQL或Microsoft SQL Server。 总的来说,...

    Linux下访问SQL Server数据库的应用.pdf

    综上所述,该文档提供的解决方案对于在Linux环境中利用现有的SQL Server数据库资源具有很高的实用价值,为跨平台数据库访问提供了有效的工具和方法。通过中间件和ODBC接口,开发者可以在Linux环境下实现与Windows...

    Firebird_ODBC driver

    Firebird ODBC驱动程序是连接到Firebird数据库服务器的关键组件,尤其对于那些使用Open Database ...通过其强大的功能和广泛的兼容性,Firebird ODBC驱动程序为开发人员提供了一个灵活、可靠的数据库连接解决方案。

    如何用ODBC接口访问MySQL指南

    另一个解决方案是定义数据源。在数据源中定义连接信息,例如数据库名称、服务器名称、用户名、密码等。然后,在 ASP 代码中使用数据源名称连接到 MySQL 数据库。这可以简化实现难度,并提高安全性。 ``` dim sql ...

    ODBC API用于数据库管理

    ODBC(Open Database Connectivity)是微软推出的一种标准应用程序接口(API),它允许应用程序与各种不同数据库...同时,了解ODBC的工作原理也有助于开发者在遇到与数据库相关的技术问题时,更高效地找到解决方案。

    BIEE配置ODBC连接impala

    #### 四、常见问题及解决方案 - **问题 1**:连接失败。 - 检查 `odbcinst.ini` 和 `odbc.ini` 文件中的路径是否正确。 - 确认环境变量是否设置正确,并已通过 `source /etc/profile` 命令使更改生效。 - 检查 ...

    Linux下链接SQL2000完整教程

    在Linux环境下,与Windows上的...不过,需要注意的是,随着技术的发展,现在有更多的解决方案,如使用Microsoft的官方Linux版本的SQL Server或使用云服务中的SQL Server实例,这些都提供了更现代、更无缝的跨平台体验。

    TD ODBC Driver.zip

    2. "TERADATA":这是数据库系统的名称,它是数据仓库解决方案的领导者,特别是在大规模并行处理(MPP)环境中。 3. "ODBC":如前所述,是开放数据库连接的缩写,表明这个驱动程序用于在Linux环境下通过ODBC接口访问...

Global site tag (gtag.js) - Google Analytics