请教linux系统中如何通过ODBC访问远端SQL SERVER数据库

请教linux系统中如何通过ODBC访问远端SQL SERVER数据库,第1张

freetds本身就能够连接sql server数据库。我用他来查询sybase数据库。由于历史上的原因,sql server的底层其实是MS从sybase公司买来的。所以,freetds既能连接sybase,也能够连接sql server。

我当时其实就是把freetds里面的一个应用程序的代码稍微修改了一下,就能够连接sybase来进行查询了。具体的该文件的位置为freetds-0.61.2/src/apps/tsql.c。你可以编译该文件然后学会如何使用。一般情况下你直接调用

tsql -H host_ip_address -p host_port -U username -P passwd

这里host_ip_address就是你sql server服务器的ip地址,host_port是sql

server的端口号,sybase默认是5000,如果我没猜错,sql

server应该也是。username和passwd应该不用说了。tsql这个工具有一点问题就是如果passwd为空就无法登录,你可以自己修改代

码来解决这个问题。

我想你把这个tsql.c文件好好看看,就应该会知道如何使用freetds的函数库了。比较简单的。如果还有什么问题,可以发mail或者message来问我。

它是说明安装mysql-connector-odbc的时候还需要安装一些依赖库,你要先安装libodbc.so.1 libodbcinst.so.1 这两个rpm文件 你可以上网搜索这2个包下载安装

例如:sqlplus

username/password@servicename

于是想,用我的两台电脑双机互联试一试,也玩个远程连接。实验如下:

首先在我的台式机上安装了Oracle9i的数据库管理系统,并建立了一个数据库实例:xy然后为该实例新增了一个用户,用户名和密码都是kxy01

。启动实例xy后,在台式机上,直接在cmd环境键入:sqlplus

kxy01/kxy01@xy

就可以连接上数据库,呵呵,想来本地连接都是不费吹灰之力就行的。

之后,在我的笔记本上安装了Oracle9i的Client工具。然后试着直接用上述命令访问,显然是不行的,系统返回无法解析服务名的错误信息。

要实现连接到远程数据库,先了解一下相关知识吧,查了一下书。原来,

Net

Configuration

Assitant

的工具,应该就是它了。启动之:

Net

Configuration

Assitant共提供了4个配置功能:

监听程序配置,

命名方法配置,

本地网络服务名配置

目录使用配置。

要从远程位置连接Oracle数据库,必须配置Oracle网络监听程序。

Net

Configuration

Assitant

可以用于此项配置工作,启动后选择监听程序配置,一路下一步即可。

之后点开命名方法配置,系统已经默认提供了三种,其他两种也不太认识,干脆不改了,直接点后退,回到主菜单。

主菜单中,第三项是本地网络服务名配置。要通过网络访问Oracle数据库或其他服务,要使用网络服务名,该项配置允许使用由本地命名解析的网络服务名。而第四项为目录使用配置,点开一看,居然要选择目录服务器,我这一共就两台电脑,要什么目录服务,看来第四项不适合本实验了,显然,关键配置就在第三项:本地网络服务名配置。

将其点开,选择添加网络服务名 *** 作,然后会询问你希望访问何种版本的Oracle数据库服务。

按照常理,我装的是Oracle9i自然应该选择第一个(Oracle8i或更高版本数据库服务),可经过实践证明,只有选择第二个(Oracle8i发行版8.0数据库或服务)才能正常实现远程连接,不明其中原因,也就只有选第二个拉。

然后输入我的数据库实例SID:xy然后选择网络协议,双机互联应该选择TCP吧,再然后填写数据库所在的主机名:kxyhome

。端口号采用默认的1521。

点击下一步,进行数据库连接的测试,测试成功后进行网络服务名的填写,这个名字就应该是sqlplus连接时候用的服务名了,这里我们使用:xyhome之后一切配置完成,来到命行,使用sqlplus进行连接:sqlplus

kxy01/kxy01@xyhome成功啦!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7321661.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存