连接Microsoft SQL Server数据库

此页由Linux Wiki用户Chenxing于2008年3月14日 (星期五) 10:06的最后更改。

出自Linux Wiki

提示:此文已超过 7 年(2645 天)未更新,如发现内容过时或有误,欢迎改进:)

本文讨论在Linux中连接MSSQL数据库服务器的方法,包括命令提示符式的连接和可视化的客户端界面(使用OpenOffice.Org)。

Hint.gif
提示:
如果您需要在PHP程序中连接MSSQL,请看PHP连接Microsoft_SQL_Server数据库

目录

基本原理

FreeTDS为Linux系统提供了TDS协议的开源客户端。由于MS SQL和Sybase使用的恰是TDS协议,所以在Linux中可以用FreeTDS连接MS SQL。[1]

我们可以利用OpenOffice.Org Base及Linux ODBC实现可视化的数据库查看方式。方便个人用户使用Linux远程管理自己的数据库系统。

命令行管理界面

安装FreeTDS和sqsh

首先安装FreeTDS,在Debian/Ubuntu系统中的安装可以直接安装tdsodbcsqsh软件包。如果你使用的发行版没有FreeTDS,可以到FreeTDS的网站sqsh的网站下载安装。

命令行方式使用方法简介

现在就可以用sqsh访问SQL Server数据库了,最简单的使用方法如下:

sqsh -U 用户名 -P 密码 -S 服务器地址

等一会儿如果出现1> ,就说明连接成功了,可以试着输入如下语句:

SELECT @@version
GO

注意输入go后才执行语句。

Hint.gif
提示:
在命令行中直接输入密码是危险的(可以使用PS命令得到这一信息)[2],sqsh推荐将密码存放在~/.sqshrc中。

图形界面的连接方式

安装软件

请先安装前面命令行管理界面中所说的FreeTDS和sqsh。然后安装软件包unixodbc-bin(Debian/Ubuntu)或到unixODBC的网站去下载、安装。

配置ODBC

配置FreeTDS

FreeTDS的配置文件在/etc/freetds/freetds.conf(或者类似的地方)。用编辑器打开这个配置文件(需要root权限),并添加如下内容:

[myTDS]
       host = 你的服务器地址
       port = 1433
       tds version = 7.0

ODBC

运行ODBCConfig[3]

$ sudo ODBCConfig

Drivers标签页->Add。在出来的窗口中,Name填myTDS,Driver填/usr/lib/odbc/libtdsodbc.so(如果这个文件不存在请find一下),Setup填/usr/lib/odbc/libtdsS.so(如果不存在也请find一下)。确定即可(注意确定是对话框左上角的那个图标)。

选择System DSN标签页,点Add,Driver选刚才创建的myTDS,点OK。在弹出的对话框的中,name填mssqlTest,Port填1433,Servername、UID、PWD分别为myTDS、用户名、密码,请如实填写。再确定即可。

测试连接

使用isql测试连接:

isql -v mssqlTest 用户名 密码

连接成功后会有:

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

使用OpenOffice.Org Base进行管理

准备工作就绪后,打开OpenOffice.Org Base,在数据库向导中,选择连接到现在数据库,在下面选择ODBC,输入数据源名称:mssqlTest,再输入用户名等信息就可以了。

使用OpenOffice.Org Base可以查看表的结构及表中的数据,也可进行修改,不过如果连接到服务器的速度慢,OpenOffice会比较卡。


参考资料

  1. http://www.freetds.org/
  2. sqsh的man文档
  3. http://www.linuxjournal.com/node/6636/print

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
个人工具
简体繁体转换